所以我基本上编写了一个函数,使用key.set_contents_from_文件()函数,但我发现它有时会抛出此错误
<Error>
<Code>BadDigest</Code>
<Message>The Content-MD5 you specified did not match what we received.</Message>
<ExpectedDigest>TPCms2v7Hu43d+yoJHbBIw==</ExpectedDigest>
<CalculatedDigest>QSdeCsURt0oOlL3NxxGwbA==</CalculatedDigest>
<RequestId>2F0D40F29AA6DC94</RequestId><HostId>k0AC6vaV+Ip8K6kD0F4fkbdS13UdxoJ3X1M76zFUR/ZQgnIxlGJrAJ8BeQlKQ4m6</HostId></Error>
功能:
^{pr2}$如果我打开一个pythonshell并手动调用它,它可以正常工作,但是我必须处理它的方式(它不起作用)涉及从子进程调用它。这是因为调用者是python3脚本,2to3不起作用,我不想处理python3版本的各种各样的老分支。在
不管怎么说,当它进入函数时,它似乎是正确运行的,输入是预期的(我让它们打印出来),但有问题的行一直抛出这个错误。我不知道原因是什么。在
有没有可能铲斗设置不当?我觉得如果那样的话,调用Key(bucket)会抛出一个错误
所以我基本上运行下面的脚本,一次作为从python3脚本调用的子进程,另一次从控制台调用
sudo -u www-data python botoUtilities.py uploadToS3 /path/to/file /key/path
我有这样的逻辑把它传递给正确的函数
func=None
args=[]
for arg in sys.argv[1:]:
if not func:
g = globals()
func = g[arg]
else:
if arg=='True':
args.append(True)
elif arg=='False':
args.append(False)
else:
args.append(arg)
if func:
wrapper(func, args)
它在两种情况下都会运行(我写一个文件来打印参数),但只有在控制台的情况下,它才不会得到错误。这真是令人沮丧。我想不出有什么不同的做法。我只知道不可能使用boto从子进程运行向S3发送数据
目前没有回答
相关问题 更多 >
编程相关推荐