GNU/Linux >> Tutoriales Linux >  >> Linux

Subir archivos a la cuenta S3 desde la línea de comandos de Linux

Amazon ahora también proporciona sus propias herramientas CLI.

Desde http://aws.amazon.com/cli/

Usando una sintaxis familiar, puede ver el contenido de sus depósitos S3 en una lista basada en directorios.

$ aws s3 ls s3://mybucket
      LastWriteTime     Length Name
      -------------     ------ ----
                           PRE myfolder/
2013-09-03 10:00:00       1234 myfile.txt
...

Puede realizar cargas y descargas recursivas de varios archivos en un solo comando a nivel de carpeta. La CLI de AWS ejecutará estas transferencias en paralelo para mejorar el rendimiento.

$ aws s3 cp myfolder s3://mybucket/myfolder --recursive
upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt
upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt
...

Un comando de sincronización facilita la sincronización del contenido de una carpeta local con una copia en un depósito S3.

$ aws s3 sync myfolder s3://mybucket/myfolder --exclude *.tmp
upload: myfolder/newfile.txt to s3://mybucket/myfolder/newfile.txt
...

La documentación para los comandos relacionados con archivos está aquí.


S3cmd hace lo que quieres Cargar y descargar archivos, sincronizar directorios y crear depósitos.

S3cmd es una herramienta de línea de comandos gratuita y un cliente para cargar, recuperar y administrar datos en Amazon S3 y otros proveedores de servicios de almacenamiento en la nube que usan el protocolo S3, como Google Cloud Storage o DreamHost DreamObjects. Es más adecuado para usuarios avanzados que están familiarizados con los programas de línea de comandos. También es ideal para secuencias de comandos por lotes y copias de seguridad automatizadas en S3, desencadenadas desde cron, etc.


Si no puede (tal vez está en un host compartido) o no quiere instalar herramientas adicionales, es posible usar bash, curl y openssl.

http://tmont.com/blargh/2014/1/uploading-to-s3-in-bash

file=/path/to/file/to/upload.tar.gz
bucket=your-bucket
resource="/${bucket}/${file}"
contentType="application/x-compressed-tar"
dateValue=`date -R`
stringToSign="PUT\n\n${contentType}\n${dateValue}\n${resource}"
s3Key=xxxxxxxxxxxxxxxxxxxx
s3Secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`
curl -L -X PUT -T "${file}" \
  -H "Host: ${bucket}.s3.amazonaws.com" \
  -H "Date: ${dateValue}" \
  -H "Content-Type: ${contentType}" \
  -H "Authorization: AWS ${s3Key}:${signature}" \
  https://${bucket}.s3.amazonaws.com/${file}

Tenga en cuenta que modifiqué este script del que se encuentra en el enlace anterior. Agregué el -L opción porque AWS puede insertar una redirección allí. El -L seguirá la redirección por ti.

Otra advertencia. Esto no funcionará para archivos de más de 5 GB. Esos requieren una carga de varias partes que requeriría un guión más complejo.


Linux
  1. 4 formas de enviar archivos adjuntos de correo electrónico desde la línea de comandos de Linux

  2. 5 herramientas de línea de comandos para encontrar archivos rápidamente en Linux

  3. Buscar torrents desde la línea de comandos en Linux

  4. Cómo encontrar archivos con el comando fd en Linux

  5. 11 ejemplos de comandos diff3 de Linux (comparar 3 archivos línea por línea)

Cómo extraer o descomprimir archivos tar.gz desde la línea de comandos de Linux

fdupes:una herramienta de línea de comandos para buscar y eliminar archivos duplicados en Linux

youtube-dl:descargue videos de Youtube desde la línea de comandos de Linux

Comando Rm en Linux

Cómo buscar archivos desde la línea de comandos de Linux

Enviar correo electrónico en Linux desde la línea de comandos