App Engine:存储html的位置 - 数据存储区或云存储

Mos*_*ham 0 php google-app-engine google-cloud-storage google-cloud-datastore

我正在自动创建一个html页面,使用唯一标识符存储它,然后在有人访问http://www.example.com/view/unique_identifier时显示它.

我应该在哪里存储html页面,数据存储区或云存储?如果它是数据存储区,那么唯一标识符就是密钥,我只需获取并提供html.如果它是云存储,则文件以唯一标识符命名,我只是提供它.

什么更快?从长远来看,这两种方法的优点和缺点是什么?

我在App Engine上使用PHP.

Stu*_*ley 6

始终使用云存储 - 这里有两种情况.

  • 如果要在提供之前在html文件上实现某种类型的访问控制.

将其置于云存储中,并在检查用户是否具有访问权限后使用CloudStorageTools :: serve()来提供文件.

这允许您在云存储中拥有任何大小的html文件- 它还使您的应用程序更高效,因为您的实例不提供文件,而是购买应用程序引擎基础架构.你的PHP脚本看起来像

<?php

use google\appengine\api\cloud_storage\CloudStorageTools;
CloudStorageTools::serve('gs://my_bucket/unique_identifier.html');
Run Code Online (Sandbox Code Playgroud)
  • 页面是公开的 - 您只想为它们服务.

将该页面放入Google云端存储中,然后从应用程序返回301或302重定向到该页面 - 云存储将放入正确的缓存标题,以便用户在边缘缓存等时获得更快的页面.

您的PHP脚本可能看起来像

<?php

use google\appengine\api\cloud_storage\CloudStorageTools;
header('Location: ' . CloudStorageTools::getPublicUrl('gs://my_bucket/unique_identifier.html'));
Run Code Online (Sandbox Code Playgroud)

注意:如果您不希望用户必须发出2个请求来获取页面,您仍然可以使用公共页面执行(1).