gsutil - 如何告诉 gsutil 文件上传命令“dst_url”实际上是一个文件,而不是一个目录?
问题描述
在 GCS 存储桶上,我从 Web 控制台上传了一个名为 的文件fileName
,并创建了一个同名的目录fileName
。因此,GCS 存储桶在其根fileName
目录包含同名文件和同名目录。
现在,当我尝试通过命令更新fileName
文件时gsutil
gsutil cp localFile gs://bucketname/fileName
wherelocalFile
是我本地机器上的一个文件,gs://bucketname/fileName
因此是dest_url
参数,而不是覆盖 GCS文件,而是在 GCS 目录中创建fileName
一个具有 name 的新文件name ,这会产生 GCS file 。fileName
fileName
gs://bucketname/fileName/fileName
我在命令中找不到选项gsutil
,这表明提供的dest_url
应该被解释为文件而不是目录。
我错过了什么?请问有什么变通办法吗?
解决方案
实现此目的的解决方法是使用:
gsutil rsync -d . gs://bucketname
该命令将保留文件名目录的内容,但会改变文件名文件的内容;事实上,此命令将本地路径的内容(在本例中为“dot”指定的“当前”路径:.)与存储桶的内容同步,因此,如果您只是更改文件名文件的内容在您的本地系统中,同步将导致 GCS 存储桶中的文件名文件“覆盖”,而不会影响您的文件名目录。
推荐阅读
- jwt - 从 JWT 迁移到 Identity Server 4,部署后无需重新登录网站用户
- ios - 带有 UIView 的 UIScrollView 无法选择任何子视图项
- firebase - Firestore 循环的数据插入问题
- javascript - 后退按钮不适用于简单的 SPA 设置
- python - 为什么生成器列表只返回最后一个生成器的元素?
- javascript - 将 javascript 对象输出为 html 表
- kotlin - 尝试使用 Renderscript 裁剪位图失败,出现无效插槽索引错误
- laravel - 安装 sanctum 时 Laravel Composer 错误:与合同冲突
- ios - React Native 在调试时可以正常启动,但不能在发布时崩溃
- c - 即使代码的逻辑似乎正确,使用递归检查字符串是否为回文也不起作用