Tengo varios archivos grandes en mi cuenta alojada en Linux que necesito cargar en mi cuenta S3. No quiero descargarlos primero y luego subirlos a S3.
¿Hay alguna manera de "subirlo" a través de la línea de comandos de Linux? ¿O puedo acceder a través de un sitio web que trabaja con Lynx?
fuente
Amazon también ofrece sus propias herramientas de CLI ahora.
De http://aws.amazon.com/cli/
La documentación para los comandos relacionados con el archivo está aquí .
fuente
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
Tenga en cuenta que modifiqué este script del que se encuentra en el enlace anterior. Agregué la
-L
opción porque AWS puede insertar una redirección allí. La-L
opción seguirá la redirección por usted.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.
fuente
Un script de shell compatible con POSIX que solo requiere openssl, curl y sed; compatible con AWS Signature Version 4, que se requiere para la región
eu-central-1
(Frankfurt) y se recomienda para los demás:https://gist.github.com/vszakats/2917d28a951844ab80b1
Aviso, el script habilitará el lado del servidor
Encriptación AES256 por defecto.
fuente
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256
Alternativamente, puede probar https://github.com/minio/mc
mc
proporciona herramientas mínimas para trabajar con sistemas de archivos y almacenamiento en la nube compatibles con Amazon S3. Tiene características como cargas reanudables, barra de progreso, copia paralela.mc
está escrito en Golang y publicado bajo la licencia Apache v2.fuente
He encontrado que los enlaces AWS de Python en el
boto
paquete (pip install boto
) son útiles para cargar datos a S3.El siguiente script se puede llamar como:
python script_name.py "sub_bucket_name" "*.zip"
dondesub_bucket_name
indica el nombre del directorio en el que se deben almacenar los archivos en S3, y*.zip
es una ruta global que designa uno o más archivos para cargar:fuente