2013-06-15 1 views
2

GAE에서 실행중인 App Engine App을 사용하여 버킷에 파일 (xls)을 성공적으로 읽고 쓸 수있었습니다. 나는 이미지 파일에 대해 동일한 작업을 수행하려고 할 때, 그것은주고있다 오류 :이미지 업로드시 cloudstorage python 라이브러리에만 적용

'Google 클라우드 스토리지에 요청 시간이 초과되었습니다. " , DownloadError ('URL 가져올 수 없습니다 https://storage.googleapis.com/parse_scratch/TTM150 MSM63 04504.jpg을 ')

도와주세요. (내가 사용하고 코드와 함께) 벤슨, 대답에 의하여 문제에 대응


은 다음과 같습니다 :

개별 파일 크기 :

400킬로바이트 적은 다음 (일부 100킬로바이트 미만) 및 GCS에 업로드 한 이미지 중 gcs.open (fname, 'r')을 호출하여 단순히 읽으려는 이미지는 22KB입니다. 그러나 동일한 코드를 사용하여 동일한 버킷에서 읽으려고하는 xls 파일은 5MB입니다!

코드 :

그것은 무엇입니까

: 내 장고 프레임 워크의 정적 파일에서 저장된 이미지의 ZipFile를이, 하나 하나 그것을 통해 파일을 읽고 열고, gcs_write를 사용하여 GCS에 데이터를 저장하려고합니다(). 비슷한 코드 (Zip 파일을 거치지 않고 GCS에 저장된 이미지를 읽지 않고도 위의 동일한 오류를 생성하면서 읽을 수 없음).

zip = zipfile.ZipFile(join(IMAGEPATH, f), 'r') 

    for imgwpath in zip.namelist(): 
     if not (('.jpg' in imgwpath) or ('.jpeg' in imgwpath) or ('.gif' in imgwpath)): 
      continue 

     full_name = imgwpath.split('/') 
     image_name = full_name[len(full_name)-1] 

     data = zip.read(imgwpath) 
     if '.jpg' or '.jpeg' in image_name: 
      type = 'jpeg' 
     elif '.gif' in image_name: 
      type = 'gif' 

     filename = BUCKET + image_name 
     gcs_file = gcs.open(filename, 'w', content_type = 'image/jpeg') 
     gcs_file.write(data) 
     gcs_file.close() 
+1

얼마나 많은 사용자가 작성하려는 이미지 파일은? – Benson

+0

코드에서 오류 메시지를 나타내는 줄은 무엇입니까? – Benson

+0

gcs 라이브러리를 사용합니다. 보시다시피 마지막 세 줄은 GCS에 대한 유일한 줄입니다. – user2243088

답변

0

같은 문제가 발생하여 다른 사람이이 문제를 경험할 경우 답할 것입니다.

파일 이름에 공백이있는 것으로 보입니다. 파일 이름을 지정하면

, 나는이 문제를 해결 듯 공백을 밑줄, 대체 :

filename = BUCKET + image_name 
    filename = filename.replace(" ", "_") 
    gcs_file = gcs.open(filename, 'w', content_type = 'image/jpeg') 
    gcs_file.write(data) 
    gcs_file.close() 
관련 문제