在谷歌云存储中,我有一个存储桶,默认存储类为standard
。当我将对象上传到这个bucket中时,我需要将一些对象的存储类设置为coldline
。
是否可以在上传过程中设置存储类?或者我应该先上传,然后更改对象的存储类。在文档中,我只找到了一种更改上传对象的存储类的方法。
根据API文档,是的,这是可能的。我不知道标准库(尤其是c#,因为我不知道那种语言(;但是您可以通过API调用(或者用您选择的语言实现这个调用(来实现。
请注意,在上传内容时,必须使用多部分上传来定义元数据。
使用该多部分文件内容(multipart.json
(
--BOUNDARY_STRING
Content-Type: application/json; charset=UTF-8
{"name": "myObject", "storageClass": "COLDLINE"}
--BOUNDARY_STRING
Content-Type: application/text
runtime: go116
instance_class: F4
--BOUNDARY_STRING--
使用API调用
curl -X POST --data-binary @multipart.json
-H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "Content-Type: multipart/related; boundary=BOUNDARY_STRING"
-H "Content-Length: 221"
-H "Storage-Class: COLDLINE"
"https://storage.googleapis.com/upload/storage/v1/b/YOUR_BUCKET/o?uploadType=multipart"
(用一个真正的bucket更改YOUR_BUCKET
。它对我有效(