使用 Google App Engine PHP 的临时文件的最佳解决方案/实践?

Best solution / practice for temp files with Google App Engine PHP?

GAE 上使用 PHP 的临时文件的普遍接受的 wisdom/tech 解决方案是什么?

我需要使用 PHP 存储和处理图像(大小为几百 K),在将其发送到其他地方之前,暂时(例如 < 1 秒)需要作为临时文件存在于某处,并且可以删除临时文件。我的站点将需要为潜在的大量用户自动缩放(使用 GAE 作为标准)。

我的想法是尝试将临时文件存储在内存中(使用 tempnam() 等),如果失败(例如该实例上的内存已满),请立即尝试使用其他一些存储来代替。问题是什么?图像必须作为 CURL 的文件才能访问它(我认为?)并发送到其他地方,因此 Memcache 不是一个选项(不能将数据作为文件访问以传递到 CURL - 或者我可以吗?),但是例如云存储是(通过 'gs://[bucket-name]/...')。问题是,如果我刚刚将文件写入存储,它是否立即可供读取?这也是一笔可观的费用...

非常感谢任何帮助!

谢谢, 亚历克斯

GCS 提供了一个默认的应用程序免费存储桶,该存储桶也与您的应用程序相关联。此存储桶没有配额。

Using a default bucket

To use the default bucket:

Determine whether your app already has the default bucket created:

  • Visiting the App Engine Admin console and select your app.
  • Select Application Settings in the left navigation pane.
  • If your app has a default bucket, the Application Settings page will contain the label Google Cloud Storage Bucket, with the bucket name listed under it. The default bucket name is typically .appspot.com, where is your application ID.

If your app doesn't have a default bucket, create one:

  • Visit the App Engine Admin console and select your app.
  • Select Application Settings in the left navigation pane and scroll to the bottom of the page to Cloud Integration
  • Click Create and wait for the bucket to be created. The bucket is completely set up and ready for use.

参考:https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/activate#using_a_default_bucket