google-cloud-platform - 如何更改云存储中多个文件的扩展名?

标签 google-cloud-platform google-cloud-storage gcp-ai-platform-notebook

如何更改 GCP 云存储中多个文件的扩展名?

例如,在以下目录中:

gs://[bucket-name]/filesdirectory/

我想将扩展名为 .ipynb 的文件更改为 .py

最佳答案

您可以使用 gsutil 来完成您可以将其安装在本地计算机上或直接从 Cloud Shell 使用。

gsutil 使用的命令与 linux CLI 非常相似,您可以使用 gsutil mv 命令来实现这一点,但是由于您不能在那里使用通配符,因此您必须使用类似于此的命令:

IFS=$'\n'
gsutil ls gs://your-bucket/*.ipynb| while read x; do gsutil mv $x $(echo $x | sed "s/.ipynb/.py/g"); done

我不是 shell 专家,所以这可能可以改进,但这里有一个解释:

  • gsutil ls 使用通配符返回要重命名的文件
  • 遍历文件并将结果存储到变量中
  • 使用 gsutil mv + sed 放置文件扩展名并根据需要重写文件

这就像完全“重写”文件,因为 gcs 对象是不可变的,因此您可能应该牢记一些注意事项,尽管这可能不是您的情况:

  • 如果您为这些文件指定了 ACL 规则,则必须使用 -p 标志将它们传递给新文件
  • 这些是 GCS 的操作,意味着基于您的存储类别的成本。 (因为mv其实就是copy+delete,如果你在 nearline 或 coldline,您可能需要支付额外的提前删除费用)

希望这有帮助:)

关于google-cloud-platform - 如何更改云存储中多个文件的扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59486589/

相关文章:

machine-learning - 使用 sk-learn 模型进行大查询预测

google-cloud-storage - 让 gsutil 使用 gcloud 激活的服务帐户的问题

google-cloud-platform - Google Cloud 免费套餐将开始对静态或临时 IP 地址收费?

firebase - 如何配置我的 Google 身份平台以在不自动链接凭据的情况下执行 'single account per email address' 规则?

caching - Google Cloud CDN "Force Cache All Content"不缓存所有内容

android - 在 Android 应用程序中将数据库部署到 Google Cloud Storage

google-cloud-datastore - Google Cloud Storage Bucket 是否收取带宽费用?

google-cloud-platform - 以编程方式启用 Vertex AI Managed Notebook 实例中已安装的扩展

gcp-ai-platform-notebook - 如何在 CGP Cloud AI Notebook 实例中安装 Anaconda 以便 jupyter lab 使用

firebase - Firestore 规则、原子写入和写入限制