当前位置: 首页 > 知识库问答 >
问题:

从谷歌云存储下载文件夹中的文件

长孙谦
2023-03-14

我有一个python脚本,它获取已上传到google云存储桶的文件列表,并尝试以字符串形式检索数据。

代码很简单:

file = open(base_dir + "/" + path, 'wb')
data =  Blob(path, bucket).download_as_string()
file.write(data)

我的问题是,我上传的数据存储在bucket中的文件夹中,因此路径类似于:

folder/innerfolder/file.jpg

当google library试图下载文件时,它会以GET请求的形式获取该文件,该请求将上述路径转换为:

https://www.googleapis.com/storage/v1/b/bucket/o/folder%2Finnerfolder%2Ffile.jpg

有没有办法阻止这种情况发生/通过这种方式下载文件?干杯

共有1个答案

宇文勇
2023-03-14

是的——你可以用python存储客户端库做到这一点。

只需使用pip安装--升级google-Cloud-store安装它,然后使用以下代码:

from google.cloud import storage

# Initialise a client
storage_client = storage.Client("[Your project name here]")
# Create a bucket object for our bucket
bucket = storage_client.get_bucket(bucket_name)
# Create a blob object from the filepath
blob = bucket.blob("folder_one/foldertwo/filename.extension")
# Download the file to a destination
blob.download_to_filename(destination_file_name)

您也可以使用.download_as_string(),但是当您将其写入文件时,无论如何直接下载到该文件可能会更容易。

唯一需要注意的一点是,filepath是bucket名称后面的路径,因此与web界面上的路径不完全一致。

 类似资料:
  • 我是Google Cloud Platform的新手。我已经在datalab上训练了我的模型,并将模型文件夹保存在云存储中。我可以通过右键单击文件将桶中的现有文件下载到本地计算机-

  • 我在尝试从谷歌云存储下载CSV文件时遇到了一个问题。出于某种原因,它一直以字节而不是可读文本的形式下载文件。当我在Excel中打开下载的CSV时,Excel已经足够智能,可以将其转换为可读文本。我在这里错过了什么?我检查了谷歌的文档,但找不到任何好的信息来完成它们。提前谢谢你! 这是错误:UnicodeDecodeError:“utf-8”编解码器无法解码位置15-16的字节:无效的连续字节

  • 我需要从我的谷歌云存储从我的桶中下载NodeJS文件夹。我读了所有的留档,我只找到了下载文件而不是文件夹的方法。我需要获取/下载文件夹以提供用户的下载文件。 有人能帮我吗?

  • 我是一个非营利组织的谷歌办公套件管理员,刚刚发现了数据导出功能,这似乎就像个人账户的外卖。 导出文件已经准备好,现在可以从谷歌云平台存储中的存储桶下载。然而,有很多很多文件夹,试图进出每个文件夹来下载很多很多。每个文件中的zip文件听起来都是一个令人头疼的问题。 我在Mac上使用Transmit,它可以通过与Amazon S3的互操作性连接到谷歌云存储。然而,当我连接时,我什么也看不到(因为我不使

  • 我目前面临的问题与谷歌云存储, 我能够下载对象上传到谷歌云存储,但当天晚些时候,我开始得到的错误,因为"这个网站无法到达" 我在c#中以编程方式创建了一个bucket,代码如下: 因此,创建存储桶的设置如下: 默认存储类别:多地区 位置:美国(美国多个地区) 公共访问:每个对象 生命周期:无 访问控制模型:存储桶策略

  • 所以我最近注册了谷歌云,但我不知道这更多是为了编码,而不是典型的在线存储。所以我在擦除之前备份了一个闪存驱动器,现在我无法检索文件来替换闪存驱动器上的文件。我在这里尝试了一些我在其他问题上看到的命令,但只收到以下结果: 或者