如何通过云功能在Google存储桶中以二进制模式打开文件?

Kid_Learning_C

在我的云功能中,我需要在云存储中获取一个文件,然后通过HTTP POST请求将该文件发送到API。我尝试了以下代码:

storage_client = storage.Client()
bucket = storage_client.bucket(BUCKET_NAME)
source_blob_name = "/compressed_data/file_to_send.7z"
blob = bucket.blob(source_blob_name)

url = UPLOADER_BACKEND_URL
files = {'upload_file': blob}
values = {'id': '1', 'ouid': OUID}
r = requests.post(url, files=files, data=values)

它给出了一个错误说:

Traceback (most recent call last): File "/env/local/lib/python3.7/site-packages/google/cloud/functions/worker_v2.py", ... 
 \ line 90, in encode_multipart_formdata body.write(data) TypeError: a bytes-like object is required, not 'Blob'

如果此代码要在实际的VM上运行,则可以执行以下操作:

url = UPLOADER_BACKEND_URL
files = {'upload_file': open('/tmp/file_to_send.7z','rb')}
values = {'id': '1', 'name': 'John'}
r = requests.post(url, files=files, data=values)

所以问题是:在云函数中,如何从云存储中加载文件,使其输出与pythonopen(filename, 'rb')函数相同

我知道我可以blob.download_to_file()先创建open()文件,但是我想知道是否有更快的方法。

纪尧姆·布拉奎尔

在您的Cloud Functions参考中,您没有将Blob内容提供给API调用,而仅提供了Blob参考(文件路径+存储桶名称)。

实际上,您可以在内存文件系统/tmp目录中本地下载文件然后将此tmp文件作为任何文件进行处理。上传后不要忘记删除它!

您还可以尝试使用gcsfs,在中可以以python惯用的方式处理文件。调用API时,我从未尝试这样做,但它应该可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在GCP云功能[PYTHON]中访问二进制文件

来自分类Dev

在SFTP中通过二进制模式传输文件

来自分类Dev

如何使Odoo 9使用S3存储桶来存储二进制文件?

来自分类Dev

如何从DLL二进制文件中删除功能

来自分类Dev

打开文件后设置二进制模式

来自分类Dev

如何打开程序生成的二进制文件?

来自分类Dev

在python中打开Apache Thrift二进制文件

来自分类Dev

在Clisp中以二进制模式写入/读取文件

来自分类Dev

二进制文件如何“二进制”?

来自分类Dev

如何在启用了二进制模式的Google SQL中导入sql文件?

来自分类Dev

在Google Secret Manager中存储二进制数据

来自分类Dev

如何通过ssh尾随二进制文件?

来自分类Dev

如何在Swift中以二进制形式打开文件

来自分类Dev

如何在Python中通过cgi部署zip文件(或其他二进制文件)?

来自分类Dev

如何通过在 PATH 中放置二进制文件来安装 google protoc

来自分类Dev

如何在C中存储二进制数

来自分类Dev

如何决定是将二进制数据存储在Postgres还是文件中?

来自分类Dev

如何列出git存储库中的所有文本(非二进制)文件?

来自分类Dev

存储后,如何从MongoDB中检索二进制文件?

来自分类Dev

如何将Flask收到的二进制文件存储到postgres中

来自分类Dev

Microsoft Word二进制文件如何存储在Hive中?

来自分类Dev

如何从linux二进制文件中存储和检索数据

来自分类Dev

如何从.py文件中获取二进制文件

来自分类Dev

以猫鼬模式将图像文件存储在二进制数据中,并以html形式显示图像

来自分类Dev

如何从二进制文件中删除HomeKit API

来自分类Dev

如何在Julia中读取二进制文件?

来自分类Dev

如何更新二进制文件中的结构项

来自分类Dev

如何grep二进制文件中的行号?

来自分类Dev

如何从二进制文件中获取整数值

Related 相关文章

  1. 1

    如何在GCP云功能[PYTHON]中访问二进制文件

  2. 2

    在SFTP中通过二进制模式传输文件

  3. 3

    如何使Odoo 9使用S3存储桶来存储二进制文件?

  4. 4

    如何从DLL二进制文件中删除功能

  5. 5

    打开文件后设置二进制模式

  6. 6

    如何打开程序生成的二进制文件?

  7. 7

    在python中打开Apache Thrift二进制文件

  8. 8

    在Clisp中以二进制模式写入/读取文件

  9. 9

    二进制文件如何“二进制”?

  10. 10

    如何在启用了二进制模式的Google SQL中导入sql文件?

  11. 11

    在Google Secret Manager中存储二进制数据

  12. 12

    如何通过ssh尾随二进制文件?

  13. 13

    如何在Swift中以二进制形式打开文件

  14. 14

    如何在Python中通过cgi部署zip文件(或其他二进制文件)?

  15. 15

    如何通过在 PATH 中放置二进制文件来安装 google protoc

  16. 16

    如何在C中存储二进制数

  17. 17

    如何决定是将二进制数据存储在Postgres还是文件中?

  18. 18

    如何列出git存储库中的所有文本(非二进制)文件?

  19. 19

    存储后,如何从MongoDB中检索二进制文件?

  20. 20

    如何将Flask收到的二进制文件存储到postgres中

  21. 21

    Microsoft Word二进制文件如何存储在Hive中?

  22. 22

    如何从linux二进制文件中存储和检索数据

  23. 23

    如何从.py文件中获取二进制文件

  24. 24

    以猫鼬模式将图像文件存储在二进制数据中,并以html形式显示图像

  25. 25

    如何从二进制文件中删除HomeKit API

  26. 26

    如何在Julia中读取二进制文件?

  27. 27

    如何更新二进制文件中的结构项

  28. 28

    如何grep二进制文件中的行号?

  29. 29

    如何从二进制文件中获取整数值

热门标签

归档