Aqui você encontra um guia detalhado sobre como trabalhar com o Armazenamento S3 da Hostman.
Você pode encontrar os dados de conexão do S3 no painel de controle da Hostman:

Oferecemos suporte às assinaturas AWS Signature V2 e AWS Signature V4.
Para autenticar o solicitante, todas as requisições devem ser assinadas usando uma assinatura gerada com Access Key e Secret Key.
O cálculo da assinatura consiste em três etapas:
SigningKey)StringToSign)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=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
Onde:
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)
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, como GET, PUT, HEAD, DELETE
CanonicalURI: caminho codificado em URI, iniciando após o domínio com a primeira "/", por exemplo, para https://s3.hmstorage.net/bucket/sample.txt seria /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: hash SHA256 do corpo da requisição: Hex(SHA256Hash()). Se não houver corpo, gere o hash de uma string vazia: Hex(SHA256Hash("")).
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: formato date.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.
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é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é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 |