使用云存储 API 上传文件

Use Cloud Storage API upload files

我正在尝试在 Google 云服务上填充一个存储桶,但是我一直在使用的 python API 客户端库对我很好, 似乎无法上传文件。

API 是 here and is documented here

当我尝试使用 storage.objects.insert 时,我收到一条错误消息: "reason": "wrongUrlForUpload" "message": "Upload requests must include an uploadType URL parameter and a URL path beginning with /upload/"

我做了一些实验。我发现我需要传入一个文件名,但是我的数据是一个字符串,而不是我的文件系统。我正在用 tempfile.NamedTemporaryFile 创建一个文件名,并将该名称传入。tempfile 创建一个类似于 /tmp/tmpOGyQY1 的文件,但库不喜欢它,除非它可以确定文件类型.如果文件名有扩展名,那么它就可以工作。有没有办法创建一个带有扩展名的临时文件?还是有其他方法可以告知图书馆文件类型?

事实证明,我缺少的部分是在创建临时文件

时设置 suffix=".csv"