您可以使用 Cloud Storage 来存储和提供文件,例如电影、图片或其他静态内容。
本文档介绍了如何在应用中使用适用于 Cloud Storage 的 Cloud 客户端库存储数据,以及如何从 Cloud Storage 检索数据。
准备工作
- 按照设置开发环境中的说明设置您的环境和项目,并了解如何在 App Engine 中设计应用的结构。记录并保存项目 ID,因为您需要用它来运行本文档中介绍的示例应用。
请务必调用以下命令,为您的应用创建 Cloud Storage 存储桶:
gcloud storage buckets create gs://YOUR_BUCKET_NAME
将此存储桶设为可公开读取,以便其可以传送文件:
gcloud storage buckets add-iam-policy-binding gs://<var>YOUR_BUCKET_NAME</var> --member=allUsers --role=roles/storage.objectViewer
下载示例
Go
如需克隆代码库,请执行以下命令:
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
cd golang-samples/appengine_flexible/storage
Java
如需克隆代码库,请执行以下命令:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/flexible/java-17/cloudstorage
Node.js
如需克隆代码库,请执行以下命令:
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples/
cd nodejs-docs-samples/appengine/storage/flexible
PHP
如需克隆代码库,请执行以下命令:
git clone https://github.com/GoogleCloudPlatform/php-docs-samples
cd php-docs-samples/appengine/flexible/storage
Python
如需克隆代码库,请执行以下命令:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/flexible/storage
Ruby
如需克隆代码库,请执行以下命令:
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/flexible/storage/
.NET
下载示例应用并将其解压缩。
如果您使用的是命令行,请找到以下应用目录:
dotnet-docs-samples\appengine\flexible\CloudStorage\CloudStorage.Sample
如需在本地运行您的应用,请设置服务账号并下载凭据:
在 Google Cloud 控制台中打开凭据列表。
点击创建凭据。
选择服务账号密钥。
此时会打开“创建服务账号密钥”窗口。
点击服务账号列表,然后选择Compute Engine 默认服务账号。
选择 JSON 作为密钥类型。
点击创建。
此时,系统会显示新建私钥窗口,并自动下载与您所选密钥类型相对应的私钥。
点击关闭。
修改项目配置并安装依赖项
Go
在 app.yaml
中设置 GCLOUD_STORAGE_BUCKET
。此值是您之前创建的 Cloud Storage 存储分区的名称。
Java
在 app.yaml
中,将 BUCKET_NAME
设置为您之前为项目创建的 Cloud Storage。
在 pom.xml
中,添加 com.google.cloud
作为依赖项,并将 google-cloud-storage
指定为该依赖项的工件 ID;它提供了使用 Cloud Storage 所需的功能。
Node.js
在 app.yaml
中,将您的项目 ID 添加到 GOOGLE_CLOUD_PROJECT
环境值中。然后将 GCLOUD_STORAGE_BUCKET
环境值设置为您之前创建的 Cloud Storage 存储分区的名称。
在 package.json
中,添加 @google-cloud/storage
作为依赖项,用于提供使用 Cloud Storage 所需的功能。
如需了解有关在本地运行和测试的说明,请参阅 README.md
文件。
PHP
在 app.yaml
中设置 CLOUD_STORAGE_BUCKET
;此值是您之前创建的 Cloud Storage 存储分区的名称。
请注意,您必须在 composer.json
文件中添加 Cloud 客户端库,因为该库提供 Cloud Storage 功能。
Python
在 app.yaml
中设置 GOOGLE_STORAGE_BUCKET
;此值是您之前创建的 Cloud Storage 存储分区的名称。
请注意,您必须在 requirements.txt
中包含 google-cloud-storage
库,因为该库提供了 Cloud Storage 函数。
Ruby
在 app.yaml
中,将 GCLOUD_STORAGE_BUCKET
设置为您之前为项目创建的 Cloud Storage。
请注意,您必须在 Gemfile
中添加 gcloud
库才能使用 Cloud Storage 功能。
.NET
在 app.yaml
文件中,将 TEST_GOOGLE_BUCKET_NAME
设置为您之前为项目创建的 Cloud Storage。
env_variables:
TEST_GOOGLE_BUCKET_NAME: [your-bucket-name]
应用代码
Go
示例应用会显示一个网页,提示用户提供要存储在 Cloud Storage 中的文件。在用户选择文件并点击“提交”后,上传处理程序会通过 Cloud Storage NewWriter 功能将文件写入 Cloud Storage 存储桶。
请注意,要从 Cloud Storage 中检索此文件,您需要指定存储桶名称和文件名。您应将这些值存储在应用中以备将来使用。
Java
示例应用会显示一个网页,提示用户提供要存储在 Cloud Storage 中的文件。在用户选择文件并点击“提交”后,doPost
请求处理程序会通过 Storage.create 将该文件写入 Cloud Storage 存储桶。
请注意,要从 Cloud Storage 中检索此文件,您需要指定存储桶名称和文件名。您应将这些值存储在应用中以备将来使用。
Node.js
示例应用会显示一个网页,提示用户提供要存储在 Cloud Storage 中的文件。用户选择文件并点击“提交”后,上传处理程序会将文件内容加载到 Blob 中并将其写入 Cloud Storage。
请注意,在文件上传到 Cloud Storage 后,系统会返回该文件的公共网址,您可以使用该网址直接从 Cloud Storage 传送该文件。您应将此值存储在应用中以备将来使用。
PHP
示例应用会显示一个网页,提示用户提供要存储在 Cloud Storage 中的文件。用户选择文件并点击“提交”后,上传处理程序会将文件内容加载到 Blob 中并将其写入 Cloud Storage。
请注意,在文件上传到 Cloud Storage 后,系统会返回该文件的公共网址,您可以使用该网址直接从 Cloud Storage 传送该文件。您应将此值存储在应用中以备将来使用。
Python
示例应用会显示一个网页,提示用户提供要存储在 Cloud Storage 中的文件。在用户选择文件并点击“提交”后,上传处理程序会将文件内容加载到一个 Cloud Storage blob 中,并将其写入 Cloud Storage 储分区。
请注意,在将文件上传到 Cloud Storage 后,系统将返回此文件的公开网址,您可以使用该网址直接从 Cloud Storage 传送文件。您应将此值存储在应用中以备将来使用。
Ruby
示例应用会显示一个网页,提示用户提供要存储在 Cloud Storage 中的文件。用户选择文件并点击“提交”后,上传处理程序会将文件内容加载到 Blob 中并将其写入 Cloud Storage。
请注意,在文件上传到 Cloud Storage 后,系统会返回该文件的公共网址,您可以使用该网址直接从 Cloud Storage 传送该文件。您应将此值存储在应用中以备将来使用。
.NET
示例应用会显示一个网页,提示用户提供要存储在 Cloud Storage 中的文件。用户选择文件并点击“提交”后,上传处理程序会将文件内容加载到 Blob 中并将其写入 Cloud Storage。
请注意,在文件上传到 Cloud Storage 后,系统会返回该文件的公共网址,您可以使用该网址直接从 Cloud Storage 传送该文件。您应将此值存储在应用中以备将来使用。
了解详情
如需全面了解 Cloud Storage,请参阅 Cloud Storage 文档。