SDK
Use SDK
Faz com que os serviços do S3, sejam abstraidos para serem usados de forma simples.
import S3Client from 'ets-s3-sdk';
const s3 = new S3Client();
Importante: todas as operações realizadas pelas funções da SDK tem um padrão: Elas podem retornar dois tipos: Um resultado "ok: true" com o valor esperado, e um resultado "ok: false" com um erro. Se você está usando typescript, não conseguirá acessar as propriedades que deseja (como o arquivo que foi enviado, por exemplo) até checar se a operação foi feita com sucesso. Isto é feito de forma intencional para ajudar a lembrar e reforçar o máximo a necessidade de realizar tratamento de erros aos desenvolvedores, e nunca deixar um usuário sem saber o que está acontecendo quando um erro acontece.
Exemplo de uso:
const example = await s3.file.upload({ file });
if (example.ok) {
console.log(example.file); // Aqui estas propriedades podem ser acessadas
console.log(example.downloadUrl);
} else {
console.log(example.err); // Aqui só o erro está disponível
}
Tendo 3 serviços para serem usados:
- Image
- File
- Admin
Image
Realiza o Upload de imagens para o S3. Utilize esta função apenas para upload de imagens. Elas passarão por otimizações e serão servidas estaticamente. Para utilizar esta imagem, basta concatenar o atual host do serviço S3 com a propriedade path retornada da imagem.
Upload Image
Autenticação via cookies
Paramêtros
type UploadImageParams = {
file: File;
quality?: number;
meta?: any;
}
Returns Pode retornar uma mensagem de ok ou um erro
type FileFromS3<MetaType = any> = {
id: string
type: string
path: string
meta?: MetaType
createdAt: Date
}
type UploadImageOk = {
ok: true
file: FileFromS3
}
type UploadImageErr = {
ok: false
err: AxiosError
}
Upload File
Realiza o Upload e o Retrive de arquivos dentro do S3
Autenticação via cookies
// Aqui, a variável file é do tipo File padrão do javascript
const example = await s3.file.upload({ file });
if (example.ok) {
console.log(example.file);
console.log(example.downloadUrl);
}
Paramêtros
type UploadFileParams = {
file: File;
meta?: any;
}
Returns
type FileFromS3<MetaType = any> = {
id: string
type: string
path: string
meta?: MetaType
createdAt: Date
}
type UploadFileOk = {
ok: true,
downloadUrl: string,
file: FileFromS3
}
type UploadFileErr = {
ok: false,
err: AxiosError
}
Retrive File
Paramêtros
type RetriveFile = {
fileId: string
headers?: any
}
Returns
type FileFromS3<MetaType = any> = {
id: string
type: string
path: string
meta?: MetaType
createdAt: Date
}
type RetrieveFileOk<MetaType = any> = {
ok: true,
file: FileFromS3<MetaType>,
downloadUrl: string
}
type RetrieveFileErr = {
ok: false,
err: AxiosError
}
Get all Admin
Autenticação via cookies
Endpoint reservado para Admin
type getAllUrl = {
headers?: string //Url
}
Delete One
Autenticação via cookies
Endpoint reservado para Admin
type deleteOne = {
fileId: string
headers: string //Url
}