Existem alguns problemas comuns que resultam em s3cmd retornando o erro que você mencionou:
- Um nome inexistente (por exemplo, nome do intervalo digitado; ou um intervalo que ainda não foi provisionado)
- Trailing espaços em seus valores de autenticação (chave / id)
- Um relógio do sistema impreciso. É possível usar o Wireshark (através de uma conexão http - não https) para ver como o relógio do seu sistema está alinhado com o relógio do S3 - eles devem combinar dentro de alguns segundos. Considere usar o NTP para sincronizar seu relógio se isso for um problema.
Alternativas para s3cmd:
- s3cp - um script baseado em Java que oferece boa funcionalidade para transferir arquivos para o S3 e mais mensagens de erro detalhadas s3cmd
- aws - um script baseado em Perl, escrito por Tim Kay, que fornece fácil acesso à maioria das funções da AWS (incluindo S3), e é bastante popular .
Se você deseja escrever seu próprio script, é possível usar a biblioteca Pyoto Boto, que tem funções para executar a maioria das operações da AWS e tem muitos exemplos disponíveis on-line. Existe um projeto que expõe algumas das funções boto na linha de comando - embora, um conjunto muito pequeno de funções seja atualmente disponível.