为了账号安全,请及时绑定邮箱和手机立即绑定

如何将文件上传到 Google Cloud Storage Bucket 子目录

如何将文件上传到 Google Cloud Storage Bucket 子目录

Go
胡说叔叔 2022-07-04 10:01:07
我想使用 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 子目录,因为SubdirectoryGCS 上不存在 的概念。

Google Cloud Storage 对象是一个平面命名空间。

因此,在 GCS 中,您只有存储桶和对象。

在这里,您可以找到有关 gsutil 如何提供分层文件树错觉的更多详细信息:


查看完整回答
反对 回复 2022-07-04
?
婷婷同学_

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});


我遇到了子目录中的连字符不起作用的问题,这就是为什么有下划线。


查看完整回答
反对 回复 2022-07-04
  • 2 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信