Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从Google应用程序引擎上的URL将文件存储在Google存储上?_Python_Google App Engine_Boto_Google Cloud Storage - Fatal编程技术网

Python 如何从Google应用程序引擎上的URL将文件存储在Google存储上?

Python 如何从Google应用程序引擎上的URL将文件存储在Google存储上?,python,google-app-engine,boto,google-cloud-storage,Python,Google App Engine,Boto,Google Cloud Storage,我想在Google App Engine(Python)上创建一个服务,该服务将接收图像的URL并将其存储在Google存储上。我设法使用boto或gsutil命令行从本地文件上传,但不是通过URL检索文件。我试着使用,但我得到了错误签名的错误响应。显然我做错了什么,但不幸的是我不知道在哪里 所以我的问题是:如何使用Python for Google应用程序Angine从URL检索文件并将其存储在Google存储上 以下是我所做的(使用另一个): 我得到的回应是: URL: https://st

我想在Google App Engine(Python)上创建一个服务,该服务将接收图像的URL并将其存储在Google存储上。我设法使用
boto
gsutil
命令行从本地文件上传,但不是通过URL检索文件。我试着使用,但我得到了错误签名的错误响应。显然我做错了什么,但不幸的是我不知道在哪里

所以我的问题是:如何使用Python for Google应用程序Angine从URL检索文件并将其存储在Google存储上

以下是我所做的(使用另一个):

我得到的回应是:

URL: https://stackoverflow.com/users/flair/8418.png
Size: 9605 bytes

400: Bad Request
<?xml version='1.0' encoding='UTF-8'?><Error><Code>BadDigest</Code><Message>The Content-MD5 you specified did not match what we received.</Message><Details>lipis/hello.jpg</Details></Error>

你有没有看过上面的文件?除自定义标题和资源路径外,要签名的字符串必须包括
Content-MD5
Content-Type
Date
标题。

Content-MD5
标题是可选的。试着把这个留着测试


此外,所需的标题为
授权
日期
主机
。您的请求似乎缺少
Host
标题。

您可以发布一些代码来执行POU和服务器回复吗?@Peter Knego我更新了我的答案。当我添加主机时,我仍然收到相同的错误。当我删除Content-MD5时,我得到一个403:禁止我们计算的请求签名与您提供的签名不匹配。检查您的Google密钥和签名方法。尝试使用Chrome Potter或Firefox海报插件手动创建PUT请求。检查各种标题,直到正确为止。然后将其转换为代码。没法去上班。我认为我的签名是错误的,所以我不能把它贴在海报上:(我在上面的代码中对如何计算它有什么意义吗?我在AppEngine上用Java开发,所以我不能评论Python。这似乎是正确的。但是如果你不能让Poster正常工作,那么也许你应该重新检查其他头参数,比如主机和身份验证。我做了,但我无法让它正常工作。你能给我一个我可以尝试的例子吗?你不是不要在您提供的示例代码中的签名字符串中包含这些标题。请尝试按文档添加它们,如果仍然不起作用,请向我们展示您正在使用的代码。
URL: https://stackoverflow.com/users/flair/8418.png
Size: 9605 bytes

400: Bad Request
<?xml version='1.0' encoding='UTF-8'?><Error><Code>BadDigest</Code><Message>The Content-MD5 you specified did not match what we received.</Message><Details>lipis/hello.jpg</Details></Error>