Pau*_*aul 14 google-cloud-storage
将文件上传到Google云端存储时,会有一个自定义数据字段metadata.
谷歌的例子相当简短:
var metadata = {
contentType: 'application/x-font-ttf',
metadata: {
my: 'custom',
properties: 'go here'
}
};
file.setMetadata(metadata, function(err, apiResponse) {});
Run Code Online (Sandbox Code Playgroud)
如果我希望存储tar和zip文件的清单,或者那里有几百KB,那么GCS对元数据对象的允许量有多大?
Dav*_*vid 10
使用以下命令在GCS中上载集元数据:
$ echo '{"metadata": {"large": "' > body ; tr -dC '[:print:]' < /dev/urandom | tr -d '\\"' | head -c SIZE_OF_METADATA_IN_BYTES >> body ; echo '"}}' >> body; curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -X PATCH -H "Content-type: application/json" -d @body -o return_body https://www.googleapis.com/storage/v1/b/manifest-geode-357/o/empty
Run Code Online (Sandbox Code Playgroud)
我发现上面的2097KB标题服务返回"HTTP 413 Request Too Large"并且没有设置元数据.低于该级别,它按预期设置.如果我使用更多可压缩输入(例如输出yes),我可以获得更多数据,但截止值是相同的内容长度值(即压缩后).由于2097KB == 2MiB几乎完全正确,我预计真正的限制是整个HTTP请求必须适合2MiB.
然而,布兰登的评论是正确的:对于整个目录,这不是一个好主意:
只需将清单存储在单独的对象中即可解决所有这些问题.您可以将清单的位置存储在元数据中,并获得两个选项的好处.
| 归档时间: |
|
| 查看次数: |
792 次 |
| 最近记录: |