2

Blobstore API を使用して Google Cloud Storage にファイルをアップロードしようとしています。画像は正しくアップロードされますが、処理しようとします (ユーザーにリンクします)。エラーが発生します:

Index out of range

これは私のコードです:

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
    def post(self):
        upload_files = self.get_file_infos('file')  # 'file' is file upload field in the form
        file_info = upload_files[0]

        #self.response.headers['Content-Type'] = 'application/x-www-form-urlencoded'
        #self.response.headers.add_header('Access-Control-Allow-Origin', '*')
        gcs_filename = file_info.gs_object_name
        file_key = blobstore.create_gs_key(gcs_filename)

        File(file=file_key, owner=utils.get_current_user(), 
                    url= images.get_serving_url(file_key)).put()

私のコードは一列にfile_info = upload_files[0]並んでいます。

4

1 に答える 1

0

ファイルを Google Cloud Storage バケットに入れるコードはどこにありますか?

GCSアップロードの実装方法によっては、これら2行に問題があると思います...

gcs_filename = file_info.gs_object_name
file_key = blobstore.create_gs_key(gcs_filename)

gs_object_name は、アイテムが GCS からのものである場合にのみ意味のある結果を返す必要があります。これにより、gcs_filename が正しくない場合、create_gs_key() も失敗します。

Google Cloud Storage で blobstore API を使用する方法については、 https://cloud.google.com/appengine/docs/python/blobstore/#Python_Using_the_Blobstore_API_with_Google_Cloud_Storageの記事を参照してください。

于 2014-12-14T18:42:21.150 に答える