Amazon AWS - S3¶
Nada puede ser más sencillo que interactuar con Amazon Simple Storage Service (S3) que el complemento BotCity para AWS S3.
Interactúa con tus buckets, archivos, carpetas y más utilizando esta API simple y seleccionada.
Instalación¶
Importando el complemento¶
Después de instalar este paquete, el siguiente paso es importar el paquete en tu código y comenzar a utilizar las funciones.
Configuración de la conexión¶
Caution
S3 solo funciona con rutas de estilo POSIX, utiliza "/" (barra diagonal). No se permiten rutas relativas, si vas a realizar algún cambio, utiliza la ruta absoluta del archivo o carpeta.
Note
Hay dos formas diferentes de autenticación.
1. Creando la carpeta .aws
en el directorio principal, necesitas crear dos archivos.
# ~/.aws/credentials
[default]
aws_access_key_id=<your_aws_access_key_id>
aws_secret_access_key=<your_aws_secret_access_key>
2. Pasando las credenciales en el constructor de la clase.
Operaciones con buckets¶
Listando buckets¶
Creando bucket¶
Attention
Amazon S3 admite buckets globales, lo que significa que cada nombre de bucket debe ser único en todas las cuentas de AWS en todas las regiones de AWS dentro de una partición.
Tip
Todos los métodos que utilizan el parámetro bucket_name
son opcionales y se pueden definir de la siguiente manera.
Eliminando bucket¶
Operaciones con archivos¶
Subiendo archivo¶
Descargando archivo¶
Copiando archivo¶
from botcity.plugins.aws.s3 import BotAWSS3Plugin
s3 = BotAWSS3Plugin()
# copying the file to another bucket
s3.copy_file(
bucket_name='<your_bucket_name>',
filename='example.txt',
target_bucket_name='another_bucket',
target_filename='copy_of_the_file_in_another_bucket.txt'
)
# copying the file to another place in the same bucket
s3.copy_file(
bucket_name='<your_bucket_name>',
filename='example.txt',
# target_bucket_name='another_bucket', ignore this argument
target_filename='copy_of_the_file_in_the_same_bucket.txt'
)
Listando archivos¶
Eliminando archivo¶
Moviendo archivo¶
from botcity.plugins.aws.s3 import BotAWSS3Plugin
s3 = BotAWSS3Plugin()
# moving the file to another bucket
s3.move_file(
bucket_name='<your_bucket_name>',
filename='/test/current-file.txt',
target_bucket_name='another_bucket',
target_filename='/test/current-file.txt'
)
# copying the file to another place in the same bucket
s3.move_file(
bucket_name='<your_bucket_name>',
filename='/test/current-file.txt',
# target_bucket_name='another_bucket', ignore this argument
target_filename='/another_folder/current-file.txt'
)
Operaciones con carpetas¶
Subiendo carpeta¶
Attention
Por ahora, las carpetas vacías se ignoran.
Descargando carpeta¶
Copiando carpeta¶
from botcity.plugins.aws.s3 import BotAWSS3Plugin
s3 = BotAWSS3Plugin()
# copying the folder to another bucket
s3.copy_folder(
bucket_name='<your_bucket_name>',
folder_name='/docs',
target_bucket_name='another_bucket',
target_folder_name='/docs'
)
# copying the folder to another place in the same bucket
s3.copy_folder(
bucket_name='<your_bucket_name>',
folder_name='/files/docs',
# target_bucket_name='another_bucket', ignore this argument
target_folder_name='/' # will copy folder to bucket root path. /files/docs -> /docs
)
Eliminando carpeta¶
Moviendo carpeta¶
Tip
La función para mover carpetas se puede utilizar para cambiar el nombre de una carpeta.
from botcity.plugins.aws.s3 import BotAWSS3Plugin
s3 = BotAWSS3Plugin()
# moving the folder to another bucket
s3.move_folder(
bucket_name='<your_bucket_name>',
folder_path='/docs/tests',
target_bucket_name='another_bucket',
target_folder_name='/' # move /docs/tests to / in another bucket
)
# moving the folder to another place in the same bucket
s3.move_folder(
bucket_name='<your_bucket_name>',
folder_path='/docs',
# target_bucket_name='another_bucket', ignore this argument
target_folder_name='/copy-docs/' # move folder to inside /copy-docs/
)
# renaming folder
s3.move_folder(
bucket_name='<your_bucket_name>',
folder_path='/docs',
target_folder_name='/docs-v2' # rename folder
)
Cambiando el nombre de la carpeta¶
Otras operaciones¶
Para utilizar otros métodos de AWS S3, utiliza la propiedad S3 client
de la clase BotAWSS3Plugin
.
Enumeración de filtros
Las operaciones de filtro (filter buckets
, filter files
) reciben una enumeración de filtro con los siguientes valores posibles:
Filter.EQUALS
Filter.STARTS_WITH
Filter.ENDS_WITH
Filter.CONTAINS