大小参数不适用于图像的 Google CDN

Size Parameter doesn't work on Google CDN for images

我正在使用 webApp2 和 Google App Engine 开发一个简单的应用程序,并使用 imagesblobstore api 使用 Google CDN 提供上传的图像。我正在使用以下代码为图像生成服务 Url -

from google.appengine.api import images
from google.appengine.ext import blobstore

def _get_urls_for(self, file_name):
    user = users.get_current_user()
    if user is None:
        return

    bucket_name = app_identity.get_default_gcs_bucket_name()
    path = os.path.join('/', bucket_name, user.user_id(), file_name)
    real_path = '/gs' + path
    key = blobstore.create_gs_key(real_path)
    url = images.get_serving_url(key, size=0)
    thumbnail_url = images.get_serving_url(key, size=150, crop=True)
    return url, thumbnail_url

它给我 url 如下(例如)-

http://localhost:8080/_ah/img/encoded_gs_file:YXBwX2RlZmF1bHRfYnVja2V0LzE4NTgwNDc2NDIyMDEzOTEyNDExOC9pbWc4NzYuanBn=s32

http://localhost:8080/_ah/img/encoded_gs_file:YXBwX2RlZmF1bHRfYnVja2V0LzE4NTgwNDc2NDIyMDEzOTEyNDExOC9pbWc4NzYuanBn=s150-c

两个 url 仅延迟最后一个尺寸参数 (=s150-c),该参数应将 thumbnail_url 中的图像裁剪为 150 像素,作为其最大尺寸。我可以通过参考官方文档here 来确认这一点。但是该参数根本不影响图像的大小。即使在添加参数之后,我仍然得到全尺寸图像。我已经尝试删除 -c 并尝试了各种尺寸。
我也尝试了一些来自 this list 的参数,不幸的是,这根本不会影响图像。

知道这种行为的原因是什么吗?

跟踪日志发现是本地没有安装PIL导致的。如果需要在本地服务器上进行转换,则需要安装 PIL。 我选择使用 pip install Pillow -t lib/ 安装 Pillow,然后将以下内容添加到 app.yaml

libraries:
- name: PIL
  version: "1.1.7"

然后在 lib 文件夹所在的项目根目录中添加一个 appengine_config.py 文件,并向其中添加以下代码。

# appengine_config.py
from google.appengine.ext import vendor

# Add any libraries install in the "lib" folder.
vendor.add('lib')

它开始神奇地发挥作用。