尝试特定的固定ACL时出错

时间:2012-09-29 03:13:37

标签: python django amazon-s3 boto

我正在尝试使用boto api将照片上传到Amazon S3。如果我没有指定Canned ACL,我可以成功上传照片。

但是如果我指定ACL如下。我收到了以下错误。

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'))

错误如下。

<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>

我试了很久但还是得不到任何提示。谁知道为什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

upload_part_from_file方法不应包含策略参数。这是boto中的一个错误。要将策略分配给多部分文件,请在policy调用中将预设策略指定为initiate_multipart_upload参数,然后上载部分并完成上载。上传各个部分时,请勿尝试通过该政策。我们应该在github上为boto创建一个问题来删除策略参数。它令人困惑,无法工作。