Cette erreur se produit lorsque Amazon renvoie une erreur: ils semblent alors débrancher la prise pour vous empêcher de téléchargement de gigaoctets de demande pour revenir "pas de, qui a échoué" dans la réponse. C'est pourquoi les gens sont-elle due à l'clock skew, certaines personnes sont-il dû à des erreurs de stratégie, et d'autres sont en cours d'exécution dans les limites de la taille exigeant l'utilisation de la partie multi-upload de l'API. Ce n'est pas que tout le monde est mauvais, ou sont encore à la recherche à différents problèmes: ce sont tous des symptômes différents de la même comportement sous-jacent dans s3cmd.
Comme la plupart des conditions d'erreur sont va être déterministe, s3cmd du comportement de jeter le message d'erreur et de réessayer plus lent est un peu fou malheureux :(. Itthen D'obtenir le véritable message d'erreur, vous pouvez aller dans /usr/share/s3cmd/S3/S3.py (se souvenir de supprimer la .pyc afin que les changements sont utilisés) et d'ajouter un print e
dans le send_file fonction de l' except Exception, e:
bloc.
Dans mon cas, j'ai essayé de définir le Type de Contenu du fichier téléchargé en "application/x-debian-package". Apparemment, s3cmd S3.object_put 1) n'a pas l'honneur d'un Type de Contenu transmis via --add-d'en-tête et pourtant 2) ne parvient pas à remplacer le Type de Contenu ajouté par --add-d'en-tête comme il stocke les en-têtes dans un dictionnaire avec la casse des clés. Le résultat est qu'il n'a qu'une signature de calcul à l'aide de sa valeur de "content-type", puis finit par (au moins avec de nombreuses demandes, ce qui peut être basé sur une sorte de hachage de la commande de quelque part) envoi "Content-Type" à Amazon, aboutissant à la signature d'erreur.
Dans mon cas précis aujourd'hui, il semble que -M serait la cause de s3cmd à deviner de quel Type de Contenu, mais il semble qu'en fonction de leur nom seul... j'aurais espéré qu'elle serait d'utiliser la mimemagic base de données basée sur le contenu du fichier. Honnêtement, si: s3cmd n'arrivons même pas à retourner l'échec d'une coquille de statut de sortie quand il ne parvient pas à télécharger le fichier, ce qui combiné avec l'ensemble de ces questions, il est probablement préférable de simplement écrire votre propre one-off outil pour faire la seule chose dont vous avez besoin... il est presque certain qu'à la fin, il vous fera économiser du temps lorsque vous faire mordre par quelque coin de cas de cet outil :(.