/ / Une erreur s'est produite lors de la tentative d'ACL en conserve spécifique - python, django, amazon-s3, boto

Vous avez une erreur lorsque vous essayez d’utiliser une liste de contrôle d’accès spécifique - python, django, amazon-s3, boto

J'essaie d'utiliser l'API Boto pour télécharger des photos sur Amazon S3. Je peux y télécharger des photos avec succès si je n'ai pas spécifié l'ACL en conserve.

Mais si j'ai spécifié ACL comme suit. J'ai eu l'erreur suivante.

mp = self._bucket.initiate_multipart_upload(name)
pool = Pool(processes=self.NUM_PARALLEL_PROCESSES)
pool.apply_async(mp.upload_part_from_file(fp=buffer, part_num=counter, headers=headers, policy="public-read"))

Erreur comme suit.

<Error><Code>InvalidArgument</Code><Message>The specified header is not valid in this context</Message><ArgumentValue>public-read</ArgumentValue><ArgumentName>x-amz-acl</ArgumentName><RequestId>xxx</RequestId><HostId>xxx</HostId></Error>

J'ai essayé pendant longtemps, mais je ne parviens toujours pas à obtenir d'indices. Quelqu'un sait pourquoi?

Merci!

Réponses:

0 pour la réponse № 1

le upload_part_from_file La méthode ne doit pas avoir de paramètre de stratégie. C'est un bug dans boto. Pour affecter une stratégie à un fichier en plusieurs parties, vous spécifiez la stratégie standard comme policy paramètre sur le initiate_multipart_upload appeler, puis télécharger les pièces et terminer latélécharger. N'essayez pas de passer la stratégie lors du téléchargement des parties individuelles. Nous devons créer un problème sur github pour que boto supprime le paramètre de stratégie. C'est déroutant et ne fonctionne pas.