Ela*_*nda 5 java google-app-engine file google-cloud-storage google-cloud-platform
我有一个谷歌存储java客户端.
我想重命名云上的文件夹.
有办法吗?
我看到了更新帖子,但我不确定如何更改名称元数据.
这是我的尝试,但我不知道该填写什么,"entity"没有oac.setName()
public void renameDirectory(String oldPath, String newName) throws IOException {
final Storage gsClient = GCSlientFactory.get(PromptoConfig.s.GCP_PROJECT_ID).getGSClient();
final URI uri = URI.create(oldPath);
ObjectAccessControl oac = new ObjectAccessControl();
oac.setId("newName");
final Storage.ObjectAccessControls.Update update = gsClient.objectAccessControls().update(BUCKET_NAME, uri.toString().replace("gs://"+BUCKET_NAME+"/", ""), "", oac);
update.execute();
}
Run Code Online (Sandbox Code Playgroud)
并且:
final Storage gsClient = GCSlientFactory.get(PromptoConfig.s.GCP_PROJECT_ID).getGSClient();
final URI uri = URI.create(oldPath);
ObjectAccessControl oac = new ObjectAccessControl();
oac.set("name", newName);
final Storage.ObjectAccessControls.Update update = gsClient.objectAccessControls().update(BUCKET_NAME, uri.toString().replace("gs://"+BUCKET_NAME+"/", ""), "allUsers", oac);
update.execute();
Run Code Online (Sandbox Code Playgroud)
GCS不支持真正的文件夹 - 命名空间是扁平的,"/"的含义实际上是由客户端(和客户端库)强加的.因此,无法以原子方式重命名文件夹 - 您需要重命名每个包含的文件,就像gsutil mv命令所做的那样.您可以通过运行如下命令来查看:
gsutil -d mv gs://my-bucket/folder1 gs://my-bucket/folder2
Run Code Online (Sandbox Code Playgroud)
-d选项将使其输出gsutil生成的请求序列以进行重命名.
| 归档时间: |
|
| 查看次数: |
1499 次 |
| 最近记录: |