Ecco il mio codice py esistente per il caricamento dei dati su blobstore.Spostamento di Blobstore in GCS: Google App Engine Python
from google.appengine.api import files
def save_data_to_blob_store(data):
# Create the file
file_name = files.blobstore.create(mime_type='application/octet-stream')
# Open the file and write to it
with files.open(file_name, 'a') as f:
f.write(data)
# Finalize the file. Do this before attempting to read it.
files.finalize(file_name)
# Get the file's blob key
blob_key = files.blobstore.get_blob_key(file_name)
return str(blob_key)
Ora sto cercando di deprecate blobstore & trasferirsi a GCS. Ho scritto del codice ma non funzionante come previsto.
def save_data_to_gcs(request):
file_name = '/gs/bucket-name-1/new_file' # change bucket/object names to suit your needs
writable_file_name = files.gs.create(file_name, mime_type='application/octet-stream',
acl='public-read')
with files.open(writable_file_name, 'a') as f:
f.write('Hello World!\n')
f.write('This is a Google Cloud Storage object!\n')
files.finalize(writable_file_name)
Durante l'esecuzione di questa procedura, GAE gettando un errore a livello della produzione,
Exception in request:
Traceback (most recent call last):
File "/base/data/home/apps/s~bfsolu/248.371810019093562707/common/zip-packages/django-1.1.zip/django/core/handlers/base.py", line 92, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/base/data/home/apps/s~bfsolu/248.371810019093562707/myapp/utils.py", line 51, in save_data_to_gcs
acl='public-read')
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/files/gs.py", line 326, in create
return files._create(_GS_FILESYSTEM, filename=filename, params=params)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/files/file.py", line 647, in _create
_make_call('Create', request, response)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/files/file.py", line 252, in _make_call
_raise_app_error(e)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/files/file.py", line 210, in _raise_app_error
raise PermissionDeniedError(e)
PermissionDeniedError: ApplicationError: 8
Qualsiasi uno potrebbe aiutare a correggere me nel save_data_to_gcs procedura, possa apprezzare.
Grazie.
Avete attivato GCS (fatturazione attiva, ecc)? In Google Cloud Console, hai dato alla tua app l'accesso al tuo bucket? Per farlo, seleziona il bucket, fai clic su "Permetti bucket" e aggiungi nuove autorizzazioni "Utente", fornendo l'indirizzo email dell'app ([email protected]) e rendendolo proprietario. –
@MarkSimpson: Grazie amico..Il suo funziona come il fascino .. Ho bisogno di un altro favore, Come ottenere la chiave univoca dei file registrati? –
OK, ho trasformato il mio commento in una risposta qui sotto. Per favore accettalo come corretto Pubblica questa nuova domanda separatamente. Non è correlato a questo problema. Grazie. –