更改对象名称

时间:2014-03-17 01:57:36

标签: java google-app-engine google-cloud-storage

有没有办法从Google App Engine Java应用程序更改存储在Google云端存储上的文件的对象名称?我正在使用Google云存储客户端库,但我没有看到用于执行此操作的API。

2 个答案:

答案 0 :(得分:5)

您无法修改对象,但可以使用storage.objects.copy方法。这会将对象(在云中)复制到新名称。复制后,您可以删除原始对象。

从Java开始,复制操作看起来像这样:

storage.objects().copy("bucket", "foo", "bucket", "newfoo", null).execute();

然后删除原文:

storage.objects().delete("bucket", "foo").execute();

答案 1 :(得分:0)

您无法更改对象名称。唯一的选择是删除它并使用新的对象名称再次保存它。

  

对象是不可变的,这意味着上传的对象不能   在整个存储寿命期间改变。对象的存储生命周期   是成功创建对象(上传)和成功之间的时间   对象删除。在实践中,这意味着你无法做出   对象的增量更改,例如追加操作或截断   操作。但是,可以覆盖那些对象   存储在Google云端存储中,因为存在覆盖操作   影响删除对象操作,然后立即上传   对象操作。因此,单个覆盖操作只是标志着结束   一个不可变对象的生命周期和新的开始   不可变对象的生命周期。