使用 gsutil 复制文件后,它们不会立即从本地存储中删除
After copying files using gsutil, they are not deleted instantly from the local storage
我的任务是将 CSV 文件从本地数据库上传到 Google Cloud storage
。
为此,我首先将它们复制到我的桌面,然后将它们上传到 Google Cloud storage
。
我希望此操作自动完成,无需我参与。因此,我创建了一个 CMD 文件,它将被 Task Scheduler
运行。 CMD文件的结构是下一个:
gsutil cp C:\Users\Myname\Desktop\test\*.csv gs://my-bucket
gsutil rm C:\Users\Myname\Desktop\test\*.csv
但是将数据加载到`Google 云存储后,它不会删除 CSV 文件。
但是,如果您在单独的命令中运行删除,它成功删除个文件。
刚刚:
gsutil rm C:\Users\Myname\Desktop\test\*.csv
但我希望下载代码和删除代码在一个文件中。
我也试过这种方法(但对我也没有帮助):
gsutil cp C:\Users\Myname\Desktop\test\*.csv gs://my-bucket
del C:\Users\Myname\Desktop\test\*.csv
这个问题的解决方案是什么?
gsutil mv 命令专为该用例设计。
但是请注意,docs section about atomicity。尤其是从本地文件系统迁移到云端,无法自动上传和删除,所以命令会先上传,验证文件是否存储在云端,然后删除本地文件。
问题是由于 gsutil
是脚本引起的。在 Windows,此脚本 (gsutil) 退出并停止进一步处理批处理文件中的命令。
解决方法是在gsutil
前面加上call
这个词:
call gsutil cp C:\Users\Myname\Desktop\test\*.csv gs://my-bucket
接下来,不要使用gsutil
删除本地文件。请改用 del
。
我的任务是将 CSV 文件从本地数据库上传到 Google Cloud storage
。
为此,我首先将它们复制到我的桌面,然后将它们上传到 Google Cloud storage
。
我希望此操作自动完成,无需我参与。因此,我创建了一个 CMD 文件,它将被 Task Scheduler
运行。 CMD文件的结构是下一个:
gsutil cp C:\Users\Myname\Desktop\test\*.csv gs://my-bucket
gsutil rm C:\Users\Myname\Desktop\test\*.csv
但是将数据加载到`Google 云存储后,它不会删除 CSV 文件。
但是,如果您在单独的命令中运行删除,它成功删除个文件。
刚刚:
gsutil rm C:\Users\Myname\Desktop\test\*.csv
但我希望下载代码和删除代码在一个文件中。
我也试过这种方法(但对我也没有帮助):
gsutil cp C:\Users\Myname\Desktop\test\*.csv gs://my-bucket
del C:\Users\Myname\Desktop\test\*.csv
这个问题的解决方案是什么?
gsutil mv 命令专为该用例设计。
但是请注意,docs section about atomicity。尤其是从本地文件系统迁移到云端,无法自动上传和删除,所以命令会先上传,验证文件是否存储在云端,然后删除本地文件。
问题是由于 gsutil
是脚本引起的。在 Windows,此脚本 (gsutil) 退出并停止进一步处理批处理文件中的命令。
解决方法是在gsutil
前面加上call
这个词:
call gsutil cp C:\Users\Myname\Desktop\test\*.csv gs://my-bucket
接下来,不要使用gsutil
删除本地文件。请改用 del
。