Amazon AWS - S3¶
Nada pode ser mais simples de interagir com o Amazon Simple Storage Service (S3) do que o plugin Botcity para AWS S3.
Interaja com seus buckets, arquivos, pastas e muito mais usando esta API simples e com curadoria.
Instalação¶
Importando o plugin¶
Depois de instalar este pacote, a próxima etapa é importar o pacote para o seu código e começar a usar as funções.
configuração de conexão¶
Cuidado
O S3 funciona apenas com caminhos POSIX-style usam "/" (barras para frente). Caminhos relativos não são permitidos, se você for fazer alterações, coloque o caminho absoluto do arquivo ou pasta.
Observação
Existem duas maneiras diferentes de autenticar.
** 1.Criando a pasta .aws
no diretório inicial, você precisa criar dois arquivos. **
# ~/.aws/credentials
[default]
aws_access_key_id=<your_aws_access_key_id>
aws_secret_access_key=<your_aws_secret_access_key>
** 2.Passando credenciais para o construtor de classe. **
Operações com bucket¶
Listando buckets¶
Criando buckets¶
Atenção
A Amazon S3 suporta buckets globais, o que significa que cada nome de bucket deve ser único em todas as contas da AWS em todas as regiões da AWS em uma partição.
Dica
Todos os métodos usando o parâmetro bucket_name
são opcionais e podem ser definidos assim.
Excluindo o buckets¶
Operações de arquivo¶
Carregando Arquivo¶
Baixando Arquivo¶
Copiando arquivo¶
from botcity.plugins.aws.s3 import BotAWSS3Plugin
s3 = BotAWSS3Plugin()
# Copiando o arquivo para outro balde
s3.copy_file(
bucket_name='<nome_do_seu_bucket>',
filename='exemplo.txt',
target_bucket_name='outro_bucket',
target_filename='copia_do_arquivo_em_outro_bucket.txt'
)
# Copiando o arquivo para outro lugar no mesmo balde
s3.copy_file(
bucket_name='<nome_do_seu_bucket>',
filename='exemplo.txt',
# Target_bucket_name = 'outro_bucket', ignore este argumento
target_filename='copia_do_arquivo_no_mesmo_bucket.txt'
)
Listando arquivos¶
Excluindo o arquivo¶
Arquivo de movimentação¶
from botcity.plugins.aws.s3 import BotAWSS3Plugin
s3 = BotAWSS3Plugin()
# moving the file to another bucket
s3.move_file(
bucket_name='<nome_do_seu_bucket>',
filename='/teste/arquivo-atual.txt',
target_bucket_name='outro_bucket',
target_filename='/teste/arquivo-atual.txt'
)
# copying the file to another place in the same bucket
s3.move_file(
bucket_name='<nome_do_seu_bucket>',
filename='/teste/arquivo-atual.txt',
# target_bucket_name='outro_bucket', ignore este argumento
target_filename='/outra_pasta/arquivo-atual.txt'
)
Operações com pasta¶
Pasta de upload¶
Atenção
Por enquanto, pastas vazias são ignoradas.
Pasta de download¶
Pasta de cópia
from botcity.plugins.aws.s3 import BotAWSS3Plugin
s3 = BotAWSS3Plugin()
# copiando a pasta para outro balde
s3.copy_folder(
bucket_name='<nome_do_seu_bucket>',
folder_name='/docs',
target_bucket_name='outro_bucket',
target_folder_name='/docs'
)
# copiando a pasta para outro lugar no mesmo balde
s3.copy_folder(
bucket_name='<nome_do_seu_bucket>',
folder_name='/arquivos/docs',
# target_bucket_name='another_bucket', ignore this argument
target_folder_name='/' # Copiará a pasta para o caminho da raiz do bucket ./arquivos /docs -> /docs
)
Excluindo a pasta¶
Pasta de movimentação¶
Dica
A função para mover pastas pode ser usada para renomear uma pasta.
from botcity.plugins.aws.s3 import BotAWSS3Plugin
s3 = BotAWSS3Plugin()
# moving the folder to another bucket
s3.move_folder(
bucket_name='<nome_do_seu_bucket>',
folder_path='/docs/testes',
target_bucket_name='outro_bucket',
target_folder_name='/' # move /docs/testes para / em outro balde
)
# movendo a pasta para outro lugar no mesmo balde
s3.move_folder(
bucket_name='<nome_do_seu_bucket>',
folder_path='/docs',
# target_bucket_name='another_bucket', ignore este argumento
target_folder_name='/copia-docs/' # movPasta e para dentro /cópia-docs /
)
# renaming folder
s3.move_folder(
bucket_name='<nome_do_seu_bucket>',
folder_path='/docs',
target_folder_name='/docs-v2' # renomear pasta
)
Renomeando a pasta¶
Outras operações¶
Para usar outros métodos AWS S3, use a propriedade S3 client
da classe BotAWSS3Plugin
.
Filter Enum
As operações de filtro (filter buckets
, filter files
) recebem um Enum Filter com os possíveis valores:
Filter.EQUALS
Filter.STARTS_WITH
Filter.ENDS_WITH
Filter.CONTAINS