Use ferramentas compatíveis com S3 com o Object Storage
Crie uma credencial S3 para Object Storage, configure o s3cmd ou um SDK com ela e gerencie os objetos dos seus buckets pelas ferramentas que você já usa.
Object Storage responde ao protocolo S3, então você gerencia objetos com as ferramentas que já usa, como o s3cmd e a biblioteca boto3. Cada ferramenta se autentica com uma credencial S3 e depois lista, faz upload, faz download e exclui os objetos dos buckets que essa credencial alcança.
Pré-requisitos
- Um bucket para a credencial alcançar. Consulte Criar um bucket.
- Acesso ao Azion Console, para o procedimento pelo Console. Consulte Como acessar o Azion Console.
- Um personal token, para o procedimento pela API.
- Um cliente S3: o s3cmd para os procedimentos de linha de comando, ou Python com a biblioteca boto3 para o exemplo com SDK.
Crie uma credencial no Azion Console
Uma credencial carrega um conjunto de capabilities e cada capability é um checkbox no formulário de criação.
| Rótulo no Console | Valor na API | O que a credencial pode fazer |
|---|---|---|
| List Files | listFiles | Ver os arquivos armazenados no bucket: ListObjects e ListObjectsV2. |
| Read Files | readFiles | Acessar arquivos e fazer download deles: GetObject e HeadObject. |
| Write Files | writeFiles | Fazer upload de arquivos ou modificá-los: PutObject, CopyObject, CreateMultipartUpload, UploadPart e CompleteMultipartUpload. |
| Delete Files | deleteFiles | Remover arquivos: DeleteObject, DeleteObjects e AbortMultipartUpload. Exige Write Files. |
| List All Bucket Names | listAllBucketNames | Recuperar os nomes dos buckets disponíveis: ListBuckets. |
| List Buckets | listBuckets | Ver os detalhes dos buckets, incluindo metadados e configurações: HeadBucket, ListMultipartUploads e ListParts. |
Para criar a credencial:
Acesse Azion Console > Object Storage.
Selecione Create Credential, o controle que configura uma nova credencial para alcançar o seu bucket do Object Storage.
Em General, em Name, insira um nome que diga o que usa a credencial, como ci-upload.
Insira a data em que a credencial para de funcionar.
Selecione um checkbox por operação que a credencial permite, entre as seis da tabela acima.
Azion Console informa “Credential has been created” e mostra o secret key uma única vez, em um diálogo de cópia. Copie o secret key antes de fechar o diálogo.
A credencial existe na sua conta e você guarda a única cópia do secret key dela.
Crie uma credencial pela API
POST /v4/workspace/storage/credentials cria a credencial e retorna o par de chaves. O corpo aceita quatro campos:
| Campo | Obrigatório | O que define |
|---|---|---|
name | Sim | Identifica a credencial na sua conta. |
capabilities | Sim | As operações que a credencial permite: listFiles, readFiles, writeFiles, deleteFiles, listAllBucketNames e listBuckets. |
buckets | Não | Um array com os nomes dos buckets que a credencial alcança. Omita o campo e a credencial alcança todos os buckets da conta. |
expiration_date | Não | O momento em que a credencial para de funcionar, em UTC ISO 8601. O campo é null quando você o omite. |
O campo é o plural buckets e aceita um array. Um campo bucket no singular é aceito e ignorado, e a credencial que ele cria alcança toda a conta. Para as operações S3 que cada capability cobre, consulte Compatibilidade com S3.
Para criar a credencial:
Substitua [TOKEN VALUE] pelo seu personal token e my-static-bucket pelo bucket que a credencial alcança:
Um 201 carrega a credencial, com o access key e o secret key de que o seu cliente S3 precisa:
Copie data.access_key e data.secret_key para a ferramenta que você configura em seguida.
A credencial alcança os buckets em data.buckets e DELETE /v4/workspace/storage/credentials/{id} a remove.
Configure o s3cmd
O s3cmd é uma ferramenta de linha de comando para S3 e outros serviços de armazenamento em nuvem, e s3cmd --configure pergunta cada configuração de conexão, uma de cada vez. Para configurá-lo:
Instale o pacote s3cmd na máquina que gerencia os objetos.
Confirme que o PATH do seu sistema contém s3cmd, para que o comando rode a partir de qualquer diretório.
Insira o access_key e o secret_key da credencial que você criou.
Insira us-east-005, a região que dá nome ao endpoint do Object Storage.
Insira s3.us-east-005.azionstorage.net.
Insira %(bucket).s3.us-east-005.azionstorage.net, que endereça cada bucket como um subdomínio do endpoint.
Insira uma senha de criptografia e o caminho para o seu programa GPG. Gnu Privacy Guard é um software de criptografia livre e de código aberto, e adiciona uma camada de privacidade criptográfica e de autenticação à comunicação S3.
Insira true.
Deixe a resposta em branco quando a sua máquina se conecta diretamente.
O s3cmd assina uma requisição com as chaves que você inseriu e informa o resultado:
O s3cmd agora alcança os seus buckets com essa credencial. Você pode salvar as respostas em um arquivo .s3cfg e rodar s3cmd --configure de novo para mudá-las.
Gerencie objetos com o s3cmd
Cada comando endereça um bucket ou um objeto pela sua URL s3://.
| Comando | O que faz |
|---|---|
s3cmd ls | Lista todos os buckets da conta. |
s3cmd ls s3://my-bucket | Lista o conteúdo do bucket. |
s3cmd put file.xml s3://my-bucket/file.xml | Faz upload de um arquivo para o bucket. |
s3cmd get s3://my-bucket/file.xml file-2.xml | Faz download do objeto para um arquivo local, que você compara com o original. |
s3cmd del s3://my-bucket/addrbook.xml | Exclui um objeto. |
s3cmd info s3://my-bucket/file.xml | Retorna os metadados de um objeto sem baixá-lo. |
Rode s3cmd --help para listar todos os comandos que a ferramenta aceita.
Conecte-se com um SDK
Qualquer SDK S3 alcança o mesmo endpoint com a mesma credencial. boto3 é a biblioteca que a maioria dos projetos Python usa para armazenamento S3, e o seu client recebe o endpoint, a região e o par de chaves:
O script imprime uma linha por objeto armazenado no bucket:
O endpoint assina requisições com SigV4 e também responde a um endereço no estilo path, s3.us-east-005.azionstorage.net/<bucket>/<key>. Ele serve o gerenciamento de objetos, não a entrega a usuários finais: uma aplicação apoiada por um connector é o que responde a uma requisição vinda da internet.