在Google存储桶中创建目录

时间:2016-12-19 05:34:26

标签: google-cloud-storage

我正在编写一个代码,用于在Google Bucket(位于Google云端存储中)创建一些文件。

要创建一个目录,可以创建一个以斜杠结尾的空文件,如下面的Perl代码所示:

 my $EscapedName = uri_escape($DirName . '/');
 my $response = $ua->post("https://www.googleapis.com/upload/storage/v1/b/$Bucket/o?uploadType=media&name=$EscapedName",
                          'Content-Type' => 'application/octet-stream',
                          Content => "");

我的问题:我要将一些(实际上大约有一千个)文件(例如d/xd/yd/z)存储在一个存储桶中。我应该在存储这些文件之前创建目录d/吗?

在使用文件填充目录之前,pro和counter在Google云端存储中创建目录的参数是什么?

1 个答案:

答案 0 :(得分:2)

GCS没有"目录的任何内置概念。"我可以创建文件" a / b / c / d / e / f"没有名为" a /"的文件或者名为" a / b /"的文件。哎呀,我可以创建一个名为" ///////////// b"的对象,这是一个完全有效的对象名称。

也就是说,为方便起见,有几种工具假装目录存在。命令行工具gsutil理解以" /"结尾的空文件代表一个文件夹。同样,云控制台也会识别此格式。但是,这两种工具都不需要它。如果你创建一个名为" a / b / c / d"的对象,他们都会假装文件夹" a"," a / b"和&# 34; A / b / C"存在,无论是否存在这样的占位符目录对象。

因此,除非您的应用程序由于某种原因需要使用它们,否则根本不需要创建此类目录对象。如果由于某种原因需要这样的占位符,那么使用它们。例如,如果您的应用程序正在为文件系统建模并且存在空目录具有某些固有含义,那么您可能需要某种类型的"这是一个空目录"标记文件。

但是,如果您不需要它们存在,请不要创建它们。