【发布时间】:2017-08-18 06:25:47
【问题描述】:
传递给我的谷歌云函数的event 只真正告诉我存储桶和文件的名称,以及文件是否被删除。是的,还有更多,但似乎并没有那么有用:
{ timestamp: '2017-03-25T07:13:40.293Z',
eventType: 'providers/cloud.storage/eventTypes/object.change',
resource: 'projects/_/buckets/my-echo-bucket/objects/base.json#1490426020293545',
data: { kind: 'storage#object',
resourceState: 'exists',
id: 'my-echo-bucket/base.json/1490426020293545',
selfLink: 'https://www.googleapis.com/storage/v1/b/my-echo-bucket/o/base.json',
name: 'base.json',
bucket: 'my-echo-bucket',
generation: '1490426020293545',
metageneration: '1',
contentType: 'application/json',
timeCreated: '2017-03-25T07:13:40.185Z',
updated: '2017-03-25T07:13:40.185Z',
storageClass: 'STANDARD',
size: '548',
md5Hash: 'YzE3ZjUyZjlkNDU5YWZiNDg2NWI0YTEyZWZhYzQyZjY=',
mediaLink: 'https://www.googleapis.com/storage/v1/b/my-echo-bucket/o/base.json?generation=1490426020293545&alt=media', contentLanguage: 'en', crc32c: 'BQDL9w==' }
}
如何获取内容,而不仅仅是上传到 gs 存储桶的新 .json 文件的元数据?
我尝试在 event.data.selfLink 上使用 npm:request(),这是存储桶中文件的 URL,但返回了授权错误:
"code": 401, "message": "Anonymous users does not have storage.objects.get access to object my-echo-bucket/base.json."
在 SO 上有一个关于读取存储桶的类似问题,但可能在不同的平台上。无论如何,它没有得到答复:
How do I read the contents of a file on Google Cloud Storage using javascript `
【问题讨论】:
-
注意:这是一个self answered question。希望其他人觉得它有用。如果你有更好/更干净/更短的答案,我会考虑的。
标签: javascript google-cloud-storage google-cloud-functions