【问题标题】:Moving files between folders in Google Cloud Storage with Google Cloud Console使用 Google Cloud Console 在 Google Cloud Storage 中的文件夹之间移动文件
【发布时间】:2014-10-13 03:09:34
【问题描述】:

我已使用 Google Cloud Console 将多个文件上传到 Google Cloud Storage 上的同一文件夹中。我现在想将几个文件移动到 Google Cloud Storage 中新创建的文件夹中,但我看不到如何通过 Google Cloud Console 执行此操作。我在gsutil 上找到了通过命令提示符说明移动文件的说明。但是,我对命令行界面并不满意,并且无法让 gsutil 在我的机器上工作。

有没有办法通过 Google Cloud Console 将 Google Cloud Storage 中的文件从一个文件夹移动到另一个文件夹?

【问题讨论】:

  • 作为一个附带问题,您在让 gsutil 在您的机器上工作时遇到了哪些问题?您想要执行的操作的命令行相当简单:gsutil mv gs://bucket-name/source-folder gs://bucket-name/destination-folder-name
  • 感谢您的跟进。我的大部分问题都是基于我对命令行编程的无知。我基于Mac OS。我按照说明在我的主目录中安装 gsutil。前几个命令(安装、添加到路径、重新启动)似乎有效。当我重新启动 shell 并尝试更新和/或配置命令时,我收到“找不到命令”消息。因此,我无法进行身份验证或做任何其他事情。
  • 命令行确实需要一些时间来适应。如果您可以找到 gsutil 安装目录相对于您的主目录的位置,那么在新终端中您应该能够从 shell 运行“~/thatdirectory/gsutil your-command”。

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


【解决方案1】:

Google Cloud Storage 现在具有使用 Cloud Console 将文件从一个文件夹/存储桶移动到另一个的功能。为此,只需选择文件,单击 3 个垂直点以获取 移动 选项。选择目标文件夹/桶来移动文件。

【讨论】:

    【解决方案2】:
    推荐的答案 Google Cloud

    更新: Google Cloud Shell 在 Google Cloud Console 站点内提供终端,无需手动创建虚拟机;它带有 gsutil 和预安装和预认证的 Google Cloud SDK。


    之前的答案:如果您在计算机上安装gsutil 时遇到问题,请考虑以下方法:

    1. 使用 Google 提供的 Debian 映像启动一个 f1-micro 实例,该映像将预安装 gsutil

    2. 使用 SSH 按钮通过浏览器界面连接到它(您也可以使用 gcutilgcloud 命令,如果您已安装并可用这些命令)。

    3. 在实例中运行gcloud auth login --no-launch-browser。它会给你一个用浏览器打开的 URL。打开它后,授予 OAuth 权限,它将显示一个代码。将该代码粘贴回您运行命令的命令行窗口,以便它获取身份验证令牌。

    4. 按照 Travis Hobrla 的建议运行 gsutil mv 命令:

      gsutil mv gs://bucket/source-object gs://bucket/dest-object

    5. 完成gsutil 后,单击虚拟机实例详细信息页面顶部的Delete 按钮删除实例。确保在同一虚拟机实例页面上选中标记为“删除实例时删除启动磁盘”的框,这样您就不会留下一个孤立的磁盘,您需要为此付费。

      您还可以在“VM 实例”选项卡正下方的“磁盘”选项卡上浏览您的永久磁盘,并在此处手动删除磁盘,或者确保将来没有孤立磁盘。

    考虑到f1-micro 实例的current price 每小时 0.013 美元,这样做的成本应该不到一美分,因为只有在实例存在时才会向您收费。

    【讨论】:

    • 非常感谢您愿意帮助显​​然超出我深度的人...我尝试按照您的指示并收到以下错误消息:kelly_kellydmyers_com@gsutil:~$ gsutil mv gs ://diabetes-2014/qd81_diab_px_fact_201402.txt.gz gs://diabetes-201 4/px 正在复制 gs://diabetes-2014/qd81_diab_px_fact_201402.txt.gz [Content-Type=application/x-gzip]... AccessDeniedException: 403 Insufficient Permission kelly_kellydmyers_com@gsutil:~$
    • @Kelly 我很抱歉。首先,您必须在实例中运行 gcloud auth login 并按照其说明进行操作。我刚刚尝试过确认,它对我有用。我会用更多的细节更新上面的说明。
    • 成功!非常感谢。我真的很感激帮助。最后一个补救问题,我是否只需单击我在谷歌开发人员控制台上创建的实例中的“删除”按钮来停止会话?谢谢
    • @Kelly 是的,点击Delete 按钮即可。但在您执行此操作之前,请确保选中同一 VM 实例页面上标记为“删除实例时删除启动磁盘”的框,这样您就不会留下孤立磁盘(您需要为此付费)。您还可以在“VM 实例”选项卡正下方的“磁盘”选项卡上浏览您的永久磁盘,并在此处手动删除磁盘,或者确保将来没有孤立磁盘。
    • 太棒了。谢谢。我不确定如何处理磁盘。
    【解决方案3】:

    目前无法通过 Google Cloud Console 执行此操作。

    因为 Google Cloud Storage 中的文件夹实际上只是平面命名空间中的占位符对象,所以不可能对文件夹进行原子移动或重命名,这就是为什么这种情况比在本地文件系统中移动文件夹更复杂的原因(具有分层命名空间)。这就是为什么需要像gsutil 这样更复杂的工具的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 2017-11-25
      • 2017-04-25
      • 2021-07-27
      • 2017-11-08
      • 2018-07-13
      • 1970-01-01
      相关资源
      最近更新 更多