Esto ayudó en mi caso:
- hacer
s3cmd ls
en el cubo - imprimió una advertencia sobre una redirección
- reemplace el
bucket_host
en el.s3cfg
archivo con el de la advertencia. - repetir
s3cmd ls
, ya no debería imprimir una advertencia - volver a cargar el archivo
mi .s3cfg ahora es:
host_bucket = %(bucket)s.s3-external-3.amazonaws.com
Hay algunos problemas comunes que hacen que s3cmd devuelva el error que mencionas:
- Un depósito inexistente (p. ej., nombre de depósito mal escrito o un depósito que aún no se ha aprovisionado)
- Espacios finales en sus valores de autenticación (clave/id)
- Un reloj del sistema inexacto. Es posible usar Wireshark (a través de una conexión http, no https) para ver cómo se alinea el reloj de su sistema con el reloj de S3; deberían coincidir en unos segundos. Considere usar NTP para sincronizar su reloj si esto es un problema.
Alternativas a s3cmd:
- s3cp:un script basado en Java que ofrece una buena funcionalidad para transferir archivos a S3 y mensajes de error más detallados que s3cmd
- aws:un script basado en Perl, escrito por Tim Kay, que brinda fácil acceso a la mayoría de las funciones de AWS (incluido S3) y es bastante popular.
Si desea escribir su propio script, puede usar la biblioteca Python Boto que tiene funciones para realizar la mayoría de las operaciones de AWS y tiene muchos ejemplos disponibles en línea. Hay un proyecto que expone algunas de las funciones de boto en la línea de comandos, aunque actualmente hay disponible un conjunto muy pequeño de funciones.
Tuve el mismo problema con Ubuntu s3cmd
comando.
La descarga de la última versión estable (1.0.1) lo resolvió:http://sourceforge.net/projects/s3tools/files/s3cmd/