使用 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