如何使用 gsutil 命令在谷歌存储(存储桶)中创建一个空文件夹?

Bha*_*ora 5 bucket google-cloud-storage gsutil google-cloud-platform airflow

我们如何使用 gsutil 命令创建文件夹。我在气流中使用 Bashoperator,需要使用 gsutil Bash 命令,存储桶已创建,我想在存储桶内创建一个文件夹。我已经尝试过以下命令,但它对我不起作用。

$ gsutil cp <new_folder> gs://<bucketname>/  
Run Code Online (Sandbox Code Playgroud)

我收到错误 - CommandException:没有匹配的 URL:new_folder

Ste*_* G. 3

Google Storage 的工作方式与 Windows/Linux 中的常规文件系统不同。它似乎有文件夹,但在后台它的行为却没有。它只允许我们创建“文件夹”,以便我们可以更好地组织并让我们感到舒适。

如果您想从 gsutil 将数据保存到特定文件夹中,请尝试此操作。

gsutil cp [filetocopy] gs://your-bucket/folderyouwant/your-file
Run Code Online (Sandbox Code Playgroud)

它将将该项目存储在“文件夹”中。

检查此链接以获取更多gsutil cp 信息

这就是谷歌云存储“文件夹”背后的逻辑。

gsutil 将使用 delimiter="/" 和 prefix="abc" 为指定存储桶发出存储桶列表请求。然后,它会检查存储桶列表结果,并确定存储桶中是否存在路径以 gs://your-bucket/abc/ 开头的对象,以决定是否将目标视为对象名称或目录名称。反过来,这会影响您创建的对象的名称:如果上述检查表明存在“abc”目录,您最终将得到对象 gs://your-bucket/abc/your-file;否则你最终会得到对象 gs://your-bucket/abc。

如果您愿意,您可以在这里获得更多有趣的信息。