【问题标题】:renaming files in Google Cloud Storage?重命名 Google Cloud Storage 中的文件?
【发布时间】:2014-09-08 19:16:37
【问题描述】:

您可以重命名 Google Cloud Storage 中的文件吗?

我让用户上传照片,但我想让他们能够编辑照片,至少通过更改他们上传照片的名称。我正在通过 Node.js 使用 Javascript。

谢谢!

【问题讨论】:

  • 您使用的是哪个 API?您需要先复制,然后再删除。
  • 我用的是cloud-storage和gcloud,它们都不支持复制或移动文件

标签: javascript node.js google-cloud-storage google-cloud-platform google-api-nodejs-client


【解决方案1】:

这个命令:

gsutil mv gs://my_bucket/olddir gs://my_bucket/newdir

将完成这项工作。如果您有大量文件需要进行多处理移动,请使用以下命令:

gsutil -m mv gs://my_bucket/olddir gs://my_bucket/newdir

您可以在docs 中找到此信息。

【讨论】:

  • 要明确:gsutil mv 将重命名,但它不是原子操作:它会为您重命名的每个对象执行复制,然后删除。
  • 但这是来自命令行,有没有办法从我的服务器端 Node.js 代码中做到这一点?
  • 要从您的代码中执行此操作,您需要先进行复制,然后对每个被重命名的对象进行删除。
【解决方案2】:

这里是 Python 函数执行多线程/多处理移动:

from subprocess import call, CalledProcessError

def rename_object(self, old_dir, new_dir):
    base_cmd = ["gsutil", "-m", "mv"]
    old_path = "gs://{}".format(old_dir)
    new_path = "gs://{}".format(new_dir)
    cmd = base_cmd + [old_path, new_path]
    try:
        call(cmd)
    except CalledProcessError as e:
        print e

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2017-04-25
    • 2015-01-25
    • 2017-04-29
    • 2021-01-22
    • 2015-08-01
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多