我想添加用户元数据,这些元数据是在流上传时计算出来的。
在文件上传过程中,我从Google云存储客户端内部使用Servlet
。
我唯一能想出和尝试的解决办法是不能令人满意的,原因有几点。
为什么这些是不可接受的:
有什么方法可以在事实发生后更新对象的元数据吗?
发布于 2014-09-14 04:57:37
您可能正在使用用于AppEngine的客户端库。这个库对AppEngine用户很好,但它只提供的一部分功能。据我所知,它不会碰巧支持更新现有对象的元数据。不过,绝对支持这一点。
您可以使用Google客户端库,它公开了Google的JSON。使用这个库,您将能够使用storage.objects.update方法或storage.objects.patch方法,这两种方法都可以更新元数据(不同的是,update替换了已经存在的对象的任何属性,而修补程序只是更改指定的字段)。代码应该如下所示:
StorageObject objectMetadata = new StorageObject();
.setName("OBJECT_NAME")
.setMetadata(ImmutableMap.of("key1", "value1", "key2", "value2"));
Storage.Objects.Patch patchObject = storage.objects().patch("mybucket", objectMetadata);
patchObject.execute();
https://stackoverflow.com/questions/25828200
复制相似问题