Cómo administrar Amazon S3 desde la línea de comandos

Cómo administrar Amazon S3 desde la línea de comandos

Amazon S3 es un buen lugar para realizar copias de seguridad y almacenar sus archivos de forma económica en la nube. Mientras que algunas personas lo usan para almacenar sus datos personales, hay otros que lo usan para almacenar imágenes y scripts para sus sitios web, e incluso lo usan como CDN. En su escritorio, puede acceder y administrar fácilmente su cuenta de Amazon S3 con aplicaciones como CloudBerry, DragonDisk, etc., pero ¿qué sucede si necesita acceder desde la línea de comandos? Aquí es donde S3cmd resulta útil.

S3cmd es una herramienta de línea de comandos gratuita para cargar, recuperar y administrar datos en Amazon S3. Además de S3, también es compatible con otros proveedores de servicios de almacenamiento en la nube que utilizan el protocolo S3, como Google Cloud Storage o DreamHost DreamObjects. El mejor uso para esta herramienta es en un servidor remoto donde todo se hace en la línea de comandos. Alternativamente, también puede usarlo para crear scripts por lotes y copias de seguridad automatizadas en S3.

S3cmd está escrito en Python, por lo que es prácticamente compatible con todos los sistemas operativos, siempre que Python esté instalado.

Instalación

S3cmd se encuentra en la mayoría de los repositorios de Linux. En Debian/Ubuntu, o cualquier otra distribución basada en apt, puede instalar S3cmd con el comando:

sudo apt-get install s3cmd

Para Fedora, Centos o cualquier otra distribución basada en yum:

Alternativamente, puede descargar el código fuente, descomprima el paquete y ejecute el instalador:

sudo python setup.py install

Empezando

Antes de comenzar, deberá tener listas las claves secretas y de acceso de su Amazon S3. Puede ubicar las claves de Acceso y Secreto en el Consola de administración de Amazon.

Para comenzar, abra la terminal y escriba:

Primero le pedirá que ingrese sus claves de acceso y secretas.

configurar s3cmd

A continuación, debe ingresar una clave de cifrado y la ruta al programa GPG.

s3cmd-configure-cifrado

Después de la clave de encriptación está el mensaje para usar el protocolo HTTPS. La opción predeterminada es «No», pero puede configurarla en «Sí» para una conexión más segura a Amazon S3. Tenga en cuenta que el uso del protocolo HTTPS reducirá la velocidad de transferencia y no se puede usar si está usando un proxy.

s3cmd-configurar-https

Una vez que haya configurado y probado los ajustes, puede proceder a utilizar S3cmd. Si necesita cambiar la configuración, puede editar el archivo .s3cfg en su directorio de inicio o ejecutar el s3cmd --configure comando de nuevo.

Uso

Primero, para ver los cubos en su cuenta S3, puede usar el ls dominio.

s3cmd-list-bucket

Para crear un depósito, utilice el mb dominio:

s3cmd mb s3://test-s3cmd-bucket

Tenga en cuenta que deberá prefijar el nombre del depósito con «s3://»

s3cmd-create-bucket

Para listar el contenido en un depósito, use el ls comando junto con el nombre del depósito. Por ejemplo:

s3cmd ls s3://test-s3cmd-bucket

s3cmd-list-bucket-content

Subiendo archivo al depósito

La forma más fácil de cargar un archivo a través de S3cmd es con el put dominio. Por ejemplo:

s3cmd put text.txt s3://test-s3cmd-bucket

Además, puede utilizar el --encrypt parámetro para cifrar el archivo antes de cargarlo en S3.

s3cmd put --encrypt text.txt s3://test-s3cmd-bucket

El permiso predeterminado para el put El comando es privado, lo que significa que solo usted puede ver el archivo. Si necesita que el archivo sea de acceso público, puede agregar el parámetro --acl-public

s3cmd put --acl-public text.txt s3://test-s3cmd-bucket

Para un control más granular, utilice el --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID parámetro. Por ejemplo:

s3cmd put --acl-grant=read:damien@gmail.com text.txt s3://test-s3cmd-bucket

El «PERMISO» puede ser «leer», «escribir», «read_acp», «write_acp», «full_control», «all».

Recuperando archivos del depósito

Para recuperar un archivo, utilice el get dominio.

s3cmd get s3://test-s3cmd-bucket/text.txt text.txt

Para descargar todos los archivos en el depósito, simplemente agregue el --recursive parámetro.

s3cmd get --recursive s3://test-s3cmd-bucket

Eliminación de archivos del depósito

El comando de eliminación para s3cmd es simplemente del. Por ejemplo:

s3cmd del s3://test-s3cmd-bucket/text.txt

También puede utilizar el --recursive parámetro para eliminar todos los archivos en el depósito.

s3cmd del --recursive s3://test-s3cmd-bucket

Para obtener más comandos S3cmd, consulta su guía de uso aquí.

Uso avanzado: sincronizar una carpeta con S3

Supongamos que almacena todos sus archivos importantes en una carpeta y desea que se sincronice con S3. S3cmd viene con un sync comando que puede sincronizar la carpeta local con el destino remoto.

s3cmd sync --delete-removed ~/SecretFolder s3://my-secret-bucket/

Todo lo que tiene que hacer es crear un cronjob para ejecutar el comando de sincronización regularmente.

1. Abra el crontab.

2. Agregue la siguiente línea al final de crontab. Guarde y salga del crontab.

5 * * * * s3cmd sync --delete-removed ~/SecretFolder s3://my-secret-bucket/

Eso es todo. Su sistema ahora sincronizará la carpeta secreta con S3 cada 5 minutos. Puede cambiar el valor para ejecutar el comando de sincronización en su intervalo preferido. Todos los archivos que eliminó de la carpeta secreta también se eliminarán de S3.

Conclusión

Para aquellos que necesitan trabajar en el entorno de la línea de comandos, S3cmd es realmente una gran herramienta para acceder y administrar Amazon S3 desde la línea de comandos. No solo es fácil de usar, también viene con muchas opciones para necesidades avanzadas de uso y secuencias de comandos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas