Estate atento ya que en esta división encontrarás la contestación que buscas.
Solución:
Amazon también ofrece sus propias herramientas CLI ahora.
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 Carga y descarga de archivos, sincronización de directorios y creación de 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, activadas desde cron, etc.
Si no puede (tal vez está en un host compartido) o no desea 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="PUTnn$contentTypen$dateValuen$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í. los -L
La opción 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 script más complejo.
Comentarios y calificaciones del post
Acuérdate de que puedes optar por la opción de parafrasear tu experiencia si diste con la solución.