Guia da API S3
Aqui você encontra um guia detalhado sobre como trabalhar com o Armazenamento S3 da Hostman.
Credenciais de conexão Copiar link
Você pode encontrar os dados de conexão do S3 no painel de controle da Hostman:
- Acesse a seção Armazenamento S3.
- Clique no bucket desejado.
- Na aba Configurações, role a página até a seção Parâmetros do S3.

Para autenticar o solicitante, todas as requisições devem ser assinadas usando uma assinatura gerada com Access Key e Secret Key.
Calcular a assinatura Copiar link
O cálculo da assinatura consiste em três etapas:
- Obter a chave de assinatura (
SigningKey) - Gerar a string para assinatura (
StringToSign) - Assinar a string usando a chave
Obter a chave de assinatura (SigningKey)
Para obter a chave de assinatura, codifique os seguintes dados usando o algoritmo HMAC-SHA256:
DateKey = HMAC-SHA256("AWS4" + "<SecretKey>", "<YYYYMMDD>")
DateRegionKey = HMAC-SHA256(<DateKey>, "<aws-region>")
DateRegionServiceKey = HMAC-SHA256(<DateRegionKey>, "<aws-service>")
SigningKey = HMAC-SHA256(<DateRegionServiceKey>, "aws4_request")Oferecemos suporte à assinatura de requisições por meio do cabeçalho HTTP Authorization.
O uso do cabeçalho Authorization é o método mais comum de autenticação de usuários.
Formato geral da requisição:
Authorization: AWS4-HMAC-SHA256
Credential=12345_USER/20180524/us-2/s3/aws4_request,
SignedHeaders=host;range;x-amz-date,
Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024Onde:
-
AWS4-HMAC-SHA256: versão da assinatura AWS Signature Version 4 (AWS4) e algoritmo de assinatura (HMAC-SHA256) -
Credential: contém a access key e as informações da requisição no formato${ACCESS_KEY}/${YYYYMMDD}/${REGION}/s3/aws4_request -
SignedHeaders: lista, em letras minúsculas, dos nomes dos cabeçalhos usados no cálculo da assinatura -
Signature: hash assinado, composto pelo hash do corpo da requisição, secret key e informações da requisição (canonical request)
Gerar a string para assinatura Copiar link
Para gerar a string que será assinada, crie uma requisição canônica no seguinte formato:
<HTTPMethod>\n
<CanonicalURI>\n
<CanonicalQueryString>\n
<CanonicalHeaders>\n
<SignedHeaders>\n
<HashedPayload>Onde:
-
HTTPMethod: um dos métodos HTTP, comoGET,PUT,HEAD,DELETE -
CanonicalURI: caminho codificado em URI, iniciando após o domínio com a primeira "/", por exemplo, parahttps://s3.hmstorage.net/bucket/sample.txtseria/bucket/sample.txt -
CanonicalQueryString: parâmetros de consulta da requisição -
CanonicalHeaders: lista de cabeçalhos e seus valores, separados por quebra de linha, em minúsculas e sem espaços -
SignedHeaders: lista dos nomes dos cabeçalhos (sem valores), ordenados alfabeticamente, em minúsculas, separados por ponto e vírgula (por exemplo:host;x-amz-content-sha256;x-amz-date) -
HashedPayload: hashSHA256do corpo da requisição:Hex(SHA256Hash()). Se não houver corpo, gere o hash de uma string vazia:Hex(SHA256Hash("")).
Assinar a string usando a chave Copiar link
A string a ser assinada é a concatenação dos seguintes elementos:
"AWS4-HMAC-SHA256" + "\n" +
timeStampISO8601Format + "\n" +
<Scope> + "\n" +
Hex(SHA256Hash(<CanonicalRequest>))Onde:
-
AWS4-HMAC-SHA256: define o algoritmo de criptografia utilizado -
timeStampISO8601Format: data e hora atuais em UTC no formato ISO 8601 (por exemplo,20130524T000000Z) -
Scope: formatodate.Format(<YYYYMMDD>)+/+<region>+/+<service>+/aws4_request, por exemplo:20130606/us-2/s3/aws4_request. Isso vincula a assinatura a uma data, região e serviço específicos. Quando vinculada a uma data, a assinatura é válida por 15 minutos.
Para mais detalhes sobre autenticação por meio do cabeçalho Authorization, consulte a documentação oficial da API Amazon S3.
Métodos S3 compatíveis Copiar link
O armazenamento da Hostman é compatível com os métodos AWS S3: Bucket CRUD, Bucket Location, Object CRUD e Object Copy.
Abaixo estão os principais métodos S3 compatíveis com o Armazenamento S3 da Hostman. Você pode consultar a lista completa de recursos compatíveis na documentação oficial do CEPH.
Métodos de bucket Copiar link
|
Método |
Descrição |
|
GET Service (List Buckets) |
Obter lista de buckets |
|
GET Bucket (List Objects) |
Obter lista de objetos no bucket |
|
GET Bucket Location |
Obter a região do bucket |
|
DELETE Bucket |
Excluir bucket |
|
HEAD Bucket |
Obter status do bucket |
|
PUT Bucket |
Criar novo bucket |
|
GET Bucket ACL |
Obter lista de controle de acesso (ACL) |
|
PUT Bucket ACL |
Definir ACL |
|
GET Bucket Multipart Uploads |
Obter uploads multipart em andamento |
|
PUT Bucket Versioning |
Ativar ou suspender versionamento |
|
GET Bucket Versioning |
Obter status de versionamento (retorna vazio se nunca configurado) |
|
PUT Notification |
Ativar notificações de eventos do bucket |
|
DELETE Notification |
Excluir notificações de eventos |
|
GET Notification |
Obter lista de notificações |
|
GET Bucket Lifecycle |
Obter configuração de lifecycle |
|
DELETE Bucket Lifecycle |
Excluir configuração de lifecycle |
|
PUT Bucket Tagging |
Adicionar tags ao bucket |
|
GET Bucket Tagging |
Obter tags do bucket |
|
DELETE Bucket Tagging |
Remover tags do bucket |
|
GET Bucket Policy |
Obter política de acesso |
|
PUT Bucket Policy |
Definir política de acesso |
|
DELETE Bucket Policy |
Excluir política de acesso |
Métodos de objeto Copiar link
|
Método |
Descrição |
|
PUT Object |
Criar objeto |
|
PUT Object — Copy |
Copiar objeto |
|
DELETE Object |
Excluir objeto |
|
GET Object |
Recuperar objeto |
|
HEAD Object |
Obter metadados do objeto |
|
GET Object ACL |
Obter ACL do objeto |
|
PUT Object ACL |
Definir ACL do objeto |
|
POST Multipart Upload |
Iniciar upload multipart |
|
PUT Multipart Upload Part |
Enviar parte do objeto |
|
GET Multipart Upload Parts |
Obter partes enviadas |
|
POST Multipart Upload (Complete) |
Concluir upload multipart |
|
DELETE Multipart Upload |
Cancelar upload multipart |
|
PUT Object Tagging |
Adicionar tags ao objeto |
|
GET Object Tagging |
Obter tags do objeto |
|
DELETE Object Tagging |
Remover tags do objeto |