我想上传一个JSON文件/字典到谷歌云存储,但无论我怎么尝试,我都会出错。这是不可能的吗?
下面是我的Python代码:
response = requests.get(url, headers=headers)
json_data = response.json()
storage_client = storage.Client()
bucket = storage_client.bucket("syr_test_bucket1")
blob = bucket.blob(json_data)
blob.upload_from_filename(json_data)
我得到的错误是:
Traceback (most recent call last):
File "/layers/google.python.pip/pip/bin/functions-framework", line 8, in <module>
sys.exit(_cli())
File "/layers/google.python.pip/pip/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/layers/google.python.pip/pip/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/layers/google.python.pip/pip/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/layers/google.python.pip/pip/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/layers/google.python.pip/pip/lib/python3.8/site-packages/functions_framework/_cli.py", line 37, in _cli
app = create_app(target, source, signature_type)
File "/layers/google.python.pip/pip/lib/python3.8/site-packages/functions_framework/__init__.py", line 237, in create_app
spec.loader.exec_module(source_module)
File "<frozen importlib._bootstrap_external>", line 843, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/workspace/main.py", line 16, in <module>
blob = bucket.blob(json_data)
File "/layers/google.python.pip/pip/lib/python3.8/site-packages/google/cloud/storage/bucket.py", line 716, in blob
return Blob(
File "/layers/google.python.pip/pip/lib/python3.8/site-packages/google/cloud/storage/blob.py", line 221, in __init__
name = _bytes_to_unicode(name)
File "/layers/google.python.pip/pip/lib/python3.8/site-packages/google/cloud/_helpers.py", line 389, in _bytes_to_unicode
raise ValueError("%r could not be converted to unicode" % (value,))
功能桶。blob(blob_名称,…)接受一个blob名称作为输入——从响应中为其提供一个JSON字符串。json()
调用。
除非你的JSON与blobname完全相同,否则这是行不通的。
blob
从文件名上传
(漂亮的json)
。。。似乎这需要一个文件在你的磁盘上。。。记忆中没有一个字符串。。。(使用upload_from_string
进行上传):
blob.upload_from_string(pretty_json)
或者创建一个文件:
with open("dummy.json") as f:
f.write(pretty_json)
blob.upload_from_filename("dummy.json")
参考资料:
问题内容: 我创建了一个从有权访问的FTP服务器下载文件的功能。如何将文件上传回FTP服务器? 以下是我使用的download_files方法: 问题答案: 使用Apache Commons Net库中的FTPClient类。 这是一个带有示例的代码段: 摘录自http://www.kodejava.org/examples/356.html
问题内容: 我认为,当jenkins构建静态网站时,我有一个简单的用例,因此在构建结束时,我有一个类似于$ WORKSPACE / site-result的文件夹。 现在,我想将此文件夹上传到S3(如果已有存储,请清理存储桶)。我该怎么做? 我正在使用管道,但是如果需要可以切换到自由样式项目。到目前为止,我已经安装了S3插件(S3发布者插件)。已创建IAM用户。向“配置系统”部分添加了凭据。并且找
我看的是: > 与谷歌云平台集成 当前代码:
我在dropbox示例中没有看到任何有用的上传。 你能帮帮我吗?我在用Angularjs。
问题内容: 我是一名javascript / java开发人员,我一直在尝试弄清楚seleniumwebdriver自动化框架如何从文件系统上载文件。无法设置通过javascript输入的文件,因为它违反了安全性。但是,webdriver可以通过以下命令执行此操作: 因此,他们通过发送密钥来设置值吗?我不明白 我浏览了以下源代码:http : //code.google.com/p/seleniu
问题内容: 如何从Python 3将文件上传到Google Cloud Storage ?最终是Python 2,如果它在Python 3中不可行。 我已经看过了,但是还没有找到实际可行的解决方案。我尝试了boto,但是当我尝试通过生成生成必需的.boto文件时,总是说我需要通过配置身份验证。但是,我在没有帮助的情况下做了很多次。 问题答案: 使用标准的gcloud库,该库同时支持Python 2