2012-05-11 5 views
4

그래서 appengine에서 장고 애플리케이션을 실행하고 사용자가 업로드 할 때 파일을 생성해야합니다. 내가 가지고있는 문제는 그들을 삭제하는 방법을 알아 내려고하는 것입니다. 그것들을 생성하는 코드는 다음과 같습니다.Google Cloud Storage에서 파일 삭제

from google.appengine.api import files 

file = request.FILES['assets_thumbnail'] 
filename = '/gs/mybucketname/example.jpg' 
writable_file_name = files.gs.create(filename, mime_type='image/jpeg', acl='public-read') 
with files.open(writable_file_name, 'a') as f: 
    f.write(file.read()) 
files.finalize(writable_file_name) 

이 잘 작동하지만의 설명서 : 나열 삭제 방법이없는

https://developers.google.com/appengine/docs/python/googlestorage/functions

. 당신은 아래 링크에서 google.appengine.api.files의 실제 소스에서 (라인 504)를 보면하지만,

http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/api/files/file.py

내가 호출 할 수있는 삭제 방법이 있습니다,하지만 난 알아낼 수 없습니다 내가 원하는 삶의 방식대로 버킷 이름 등으로 여러 가지 조합을 시도했습니다./Blobstore /로 시작하는 것이 좋을 것 같습니다. Cloud Storage와 상호 작용할 때까지 내가 한 일과는 다른 것입니다. 나는 google.appengine.api.files가 위에 쓰여진 기본 blobstore 클래스를 살펴 보았지만 항목을 삭제하는 방법을 정확하게 파악할 수는 없습니다. 내가 업로드 한 항목에 대해 BlobKeys를 찾아야 할 수도 있습니다. google 호스트와 그들이 제공하는 gsutil 명령 줄 유틸리티를 기반으로하는 웹 기반 버킷 관리자를 사용하여 문제를 삭제할 수 있습니다.

누구든지 앱 엔진에 배포 된 Python 앱을 통해 Google 클라우드 저장소에서 파일을 성공적으로 삭제 했습니까? 모든 단서/생각/아이디어는 크게 감사하겠습니다.

답변

5

AppEngine 릴리스 1.7.0은 bigstore API를 사용하여 Google Storage 개체를 삭제할 수 있습니다.

key = blobstore.create_gs_key('/gs/my_bucket/my_object') 
blobstore.delete(key) 

또는 나머지 API를 사용하여 Google 스토리지에 전화를 걸어 파일을 삭제할 수 있습니다.

https://developers.google.com/storage/docs/reference-methods#deleteobject

+0

감사합니다. 스튜어트. 내가 잃어버린 것이 없다는 것을 알고 기뻐. –

관련 문제