2012-09-29 44 views
0

我正尝试使用boto api将照片上传到Amazon S3。如果我没有指定Canned ACL,我可以成功上传照片。尝试使用特定的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> 

我试了很久,但仍然没有得到任何提示。有人知道为什么

谢谢!

回答

0

upload_part_from_file方法不应该有策略参数。这是boto中的一个错误。要将策略分配给多部分文件,请在initiate_multipart_upload调用中将指定的固定策略指定为policy参数,然后上载部件并完成上载。上传个别部件时不要试图通过此政策。我们应该在github上为boto创建一个问题来删除策略参数。它很混乱,并且不起作用。

+0

是的。这很混乱。我发现,博托也没有太多的文档可用。 – Chris

相关问题