gpt4 book ai didi

java - 如何以编程方式重命名 Google 存储中的文件夹?

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:01 25 4
gpt4 key购买 nike

我有一个 google-storage java 客户端。

我想重命名云端的文件夹。

有办法吗?

我看到了 update post但我不确定如何更改名称元数据。

这是我的尝试,但我不知道要填写什么 "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();
}

还有:

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();

最佳答案

GCS 不支持真正的文件夹——命名空间是扁平的,“/”的含义实际上是由客户端(和客户端库)强加的。因此,无法自动重命名文件夹 - 您需要重命名每个包含的文件,就像 gsutil mv 命令所做的那样。您可以通过运行如下命令来查看:

gsutil -d mv gs://my-bucket/folder1 gs://my-bucket/folder2

-d 选项将导致它输出 gsutil 生成的请求序列以执行重命名。

关于java - 如何以编程方式重命名 Google 存储中的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43166410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com