google-cloud-storage开始使用google-cloud-storage


备注

Google云端存储服务可为任何规模的对象提供持久且高度可用的存储服务。您可以将Google云端存储用于一系列方案,包括提供网站内容,存储数据以进行存档和灾难恢复,或通过直接下载将大型数据对象分发给用户。

Google的GCS(Google云端存储)官方文档位于https://cloud.google.com/storage/docs/

HTTP下载(公共对象)

如果要从GCS下载可公开查看的对象,最简单的方法是使用Web浏览器或命令行工具来获取具有以下模式的URL: https//storage.googleapis.com/bucketName/objectName

示例: https//storage.googleapis.com/pub/someOfTheTeam.jpg

初始设置

Google维护有关入门的文档: https//cloud.google.com/storage/docs/quickstart-console

准备使用GCS:

  1. 如果您还没有Google Cloud项目 ,请创建一个Google项目
  2. 为项目启用计费以允许创建存储桶。
  3. (可选) 安装Google Cloud SDK ,其中包括Gsutil,GCS的命令行实用程序。作为替代方案,您可以使用Google Cloud Shell直接从Google Cloud UI使用gsutil。

使用Python上传文件

导入所需的库:

from gcloud import storage
 

定义所需的变量:

客户端 :捆绑API请求所需的配置

client = storage.Client()
 

Client() 可选参数:

  • 项目 :客户代表的项目。将在创建主题时传递。如果未通过,则回退到从环境推断的默认值。
  • 凭据 :用于连接的OAuth2凭据。如果未通过,则回退到从环境推断的默认值。
  • http :发出请求的HTTP对象。如果未传递,则会创建一个绑定到当前对象凭据的http 对象。

Bucket :通过Google Cloud Console选择在项目中创建的存储桶

bucket = client.get_bucket('<your-bucket-name>')
 

有关Client 功能的更多详细信息,请参阅Storage Client

Blob :将保存的文件名。

blob = bucket.blob('my-test-file.txt')
 

您还可以定义这样的目录:

filename = "%s/%s" % (folder, filename)
blob = bucket.blob(filename)
 

有几种方法可以上传文件。您可以期望POSTPUT 请求的有效负载中的文件,或者在文件系统上本地使用它。您甚至可以将文本直接发送到文本文件。

# Uploading string of text
blob.upload_from_string('this is test content!')

# Uploading from a local file using open()
with open('photo.jpg', 'rb') as photo:
    blob.upload_from_file(photo)

# Uploading from local file without open()
blob.upload_from_filename('photo.jpg')
 

有关上载功能的更多详细信息,请参阅Blob / Objects

如果您需要公开blob,可以将文件的隐私设置为public:

blob.make_public()
url = blob.public_url