我想使用 Go 将文件上传到谷歌云存储桶子目录。我找到的唯一参考代码是link。wc := client.Bucket(bucket).Object(object).NewWriter(ctx)这object是您的文件名的字符串,但不允许使用文件路径。当我使用像/path/filename. 它仅在您使用filename.连接:无法分配请求的地址以前我使用 node.js,它工作正常。await bucket.upload(filePath, { destination: `path/filename`, resumable:false });我怎样才能用 Go 实现呢?
2 回答
弑天下
TA贡献1818条经验 获得超8个赞
您无法将文件上传到 Google Cloud Storage Bucket 子目录,因为Subdirectory
GCS 上不存在 的概念。
Google Cloud Storage 对象是一个平面命名空间。
因此,在 GCS 中,您只有存储桶和对象。
在这里,您可以找到有关 gsutil 如何提供分层文件树错觉的更多详细信息:
婷婷同学_
TA贡献1844条经验 获得超8个赞
继续 Node 示例,存储桶始终是顶级存储桶名称。
子目录成为“文件”的一部分。GCP 将子目录 + 文件视为一个对象。是的,这是违反直觉的。
const bucketName = 'top-level-bucket-name';
const subBucketName = 'sub_level/another_sub_level/';
// Cloud Function uses /tmp not ./tmp
const directory = './tmp';
const fileName = 'foo.txt';
storage.bucket(bucketName).upload(`${directory}/${fileName}`, { destination: subBucketName + fileName});
我遇到了子目录中的连字符不起作用的问题,这就是为什么有下划线。
- 2 回答
- 0 关注
- 228 浏览
添加回答
举报
0/150
提交
取消