Skip to main content

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 cookiesEndpoint reservado para Admin
type getAllUrl = {
headers?: string //Url
}

Delete One

Autenticação via cookiesEndpoint reservado para Admin
type deleteOne = {
fileId: string
headers: string //Url
}