一个常见的用例是使文件可通过 Web 公开访问。您可以通过以下任意方式在 PHP 5 标准环境中实现此功能:
- 通过脚本在 Google Cloud Storage 中传送文件:您的应用会传送文件。
- 从 Google Cloud Storage 传送文件,Google Cloud Storage 会直接传送文件。
- 使用
app.yaml
中的静态处理程序传送随应用上传的文件。
请注意,最后一种方法不使用 Cloud Storage。
从脚本传送文件
如果您要从应用传送文件,请导入 App Engine CloudStorageTools
类:
现在使用 CloudStorageTools::serve 从 Google Cloud Storage 传送文件:
通过这种方式从应用传送文件,使开发人员能够确定用户身份,并确保只有授权用户有权访问该文件。这种方法的缺点是您的应用需要运行此代码来传送文件,这会占用实例的小时数,从而产生费用。
直接从 Google Cloud Storage 传送文件
如上所述,相对于从应用传送文件而言,还有一种更快、更具成本效益的方式:通过 HTTP 直接从 Cloud Storage 传送文件。这些文件需要在文件写入时配置为可由匿名用户读取。如我们将在以下代码段中展示的那样,您需要将 acl
流选项设置为 public-read
。
将文件写入 Cloud Storage 并设为可公开读取后,您需要使用 CloudStorageTools::getPublicUrl 获取该文件的公开网址。
在以下示例中,我们创建了一个包含一些随机数的公开可读文件,将其写入 Cloud Storage 存储桶,然后从 Cloud Storage 重定向到该文件。
这种方法的局限性在于无法控制谁可以访问该文件,因为任何人都可以读取该文件。
传送随您的应用上传的文件
如需查看此选项的完整说明,请参阅可以通过其他方式读写文件吗。