2017-01-18 1 views
0

간단한 앱에는 webApp2 및 Google App Engine을, Google CDN을 사용하여 업로드 된 이미지에는 imagesblobstore api를 사용하고 있습니다.크기 매개 변수가 이미지 용 Google CDN에서 작동하지 않습니다.

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

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

모두를 - 그것은 (예를 들어) 다음과 같은 나에게 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을 생성하려면 다음 코드를 사용하고 URL은 마지막 크기 매개 변수 (=s150-c)로 지연됩니다.이 매개 변수는 가장 큰 차원이므로 이미지를 thumbnail_url에서 150 픽셀로 자릅니다. 공식 문서 here을 참조하여 확인할 수 있습니다. 그러나 매개 변수는 이미지 크기에 전혀 영향을 미치지 않습니다. 매개 변수를 추가 한 후에도 여전히 풀 사이즈 이미지를 얻고 있습니다. 이미 -c을 제거하고 다양한 크기로 시도했습니다.
나는 불행하게도 이미지에 전혀 영향을주지 않는 this list에서 몇 가지 인수를 시도했습니다.

이 동작의 원인은 무엇입니까?

답변

3

로그를 추적 한 후 PIL이 로컬에 설치되지 않아서 발생했다고 알았습니다. 변환을 로컬 서버에서 수행해야하는 경우 PIL을 설치해야합니다. 나는 그런 lib 폴더가있는 내 프로젝트의 루트에 appengine_config.py 파일을 추가하고 다음 코드를 추가 app.yaml

libraries: 
- name: PIL 
    version: "1.1.7" 

에 다음 pip install Pillow -t lib/를 사용하여 베개를 설치하도록 선택한 다음 추가.

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

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

그리고 마술처럼 작동하기 시작했습니다.

관련 문제