Google GSutil创建文件夹

Bon*_*sky 7 gsutil google-cloud-platform cl

如何使用gsutil命令在Google云存储中的存储桶中创建新文件夹?

我尝试在创建存储桶时使用相同的命令但仍然出错

gsutil mb -l us-east1 gs://my-awesome-bucket/new_folder/
Run Code Online (Sandbox Code Playgroud)

谢谢!

nor*_*bjd 12

目录的概念在Google云端存储中是抽象的.从文档(Subdirectories如何工作):

gsutil提供了Google云端存储服务支持的"平面"名称空间顶部的分层文件树的错觉.对于服务,对象gs://your-bucket/abc/def.txt只是一个恰好在其名称中包含"/"字符的对象.没有"abc"目录; 只是一个具有给定名称的对象.

因此,您无法像创建传统文件系统那样"创建"目录.


int*_*cho 5

如果您清楚存储桶中已经存在哪些文件夹和对象,则可以通过将对象复制到文件夹中来使用gsutil创建新的“文件夹”。

>mkdir test
>touch test/file1
>gsutil cp -r test gs://my-bucket
Copying file://test\file1 [Content- 
Type=application/octet-stream]...
/ [1 files][    0.0 B/    0.0 B]
Operation completed over 1 objects.

>gsutil ls gs://my-bucket
gs://my-bucket/test/

>gsutil ls gs://my-bucket/test
gs://my-bucket/test/file1
Run Code Online (Sandbox Code Playgroud)

如果本地目录为空,则无法使用。

更简单地说:

>touch file2
>gsutil cp file2 gs://my-bucket/new-folder/
Copying file://test\file2 [Content- ...

>gsutil ls gs://my-bucket/new-folder
gs://my-bucket/new-folder/file2
Run Code Online (Sandbox Code Playgroud)

请注意可能会令人惊讶的目标子目录命名。例如,目标目录是否已作为对象存在。对于自动化过程,一种更可靠的方法是使用rsync

我不知道是否可以使用gsutil创建一个空文件夹。为此,请使用控制台的“ 创建文件夹”按钮。