我在谷歌云存储存储桶中有文件,我想在收到时从存储桶中复制所有文件,并在同一存储桶中的文件夹中创建所有这些文件的副本。(我找到了复制到桶中的解决方案,但如何复制到桶内的文件夹?(
destination = storage_client.bucket('source-bucket-name')
#这里是我的来源&目标存储桶与相同
有没有办法将文件夹名称和存储桶名称一起传递?
实际上谷歌云存储并没有真正的"文件夹";。在云存储控制台中,存储桶中的文件显示在文件夹的层次树中(就像本地硬盘上的文件系统一样(,但这只是显示文件的一种方式:存储桶中没有真正的文件夹/目录。云存储控制台只是使用文件路径的不同部分来";模拟";文件夹结构/"分隔符字符。
这篇关于云存储和gsutil的文档很好地解释和说明了";层次文件树的幻觉";。
因此,换句话说,您可以使用文件名(或文件路径(,该文件名由";文件夹/目录";名称,然后是"/"分隔符,最后是文件名。例如:fileName = "summer1970/pic1234.jpg"
。正如下面的评论中所阐明的,分层文件树的幻觉是通过文件命名而不是通过bucket命名创建的。