如何使用gsutil命令创建文件夹。我在气流中使用Bashoperator,在这里我需要使用gsutil命令,bucket已经创建了,我想在桶中创建一个文件夹。我已经按命令试过了,但这对我不起作用。
$ gsutil cp <new_folder> gs://<bucketname>/
我收到错误- CommandException:没有匹配的URL: new_folder
发布于 2019-11-13 13:34:37
不像Windows/Linux那样像普通的文件系统那样工作。它似乎有文件夹,但在后台,它的行为,因为它没有。它只允许我们创建“文件夹”,这样我们就可以更好地组织和舒适。
如果您想从gsutil中保存特定文件夹中的数据,请尝试以下操作。
gsutil cp [filetocopy] gs://your-bucket/folderyouwant/your-file
它将把项目存储在一个“文件夹”中。
有关更多gsutil cp信息,请查看此链接。
这就是“文件夹”背后的逻辑。
gsutil将使用delimiter="/“和prefix="abc”为命名的桶发出一个桶列表请求。然后,它将检查存储桶列表的结果,并确定存储桶中是否存在路径以gs://your/abc/开头的对象,以确定是将目标视为对象名还是目录名。反过来,这会影响您创建的对象的名称:如果上面的检查表明有一个"abc“目录,那么您将得到一个对象gs:// you /abc/ you;否则,您将得到一个对象gs:// you -bucket/abc。
这里有更多关于这方面的有趣的信息,如果您愿意的话。
发布于 2019-11-13 15:07:10
显然,使用gsutil
创建一个空文件夹的能力已经被看到过几次,但还没有得到满足。通过使用API似乎有一些解决办法,然后可以编写脚本。通过脚本创建空文件夹的能力的GitHub问题可以在这里找到:
发布于 2022-05-07 14:04:38
根据我的研究和尝试,您不能创建空文件夹或将空文件夹复制到GCS和gsutil。是的,不知何故不方便。
文件夹不能是要创建或复制到GCS的空,并且不要忘记标志"-r"以创建或复制文件夹到GCS,如下所示,否则如果文件夹为空或忘记了标志-re 213
,则会出错。
gsutil cp -r <non-empty-folder> gs://your-bucket
// "-r" is needed for folder
https://stackoverflow.com/questions/58838160
复制相似问题