2015-07-27 4 views
0

Хорошего дня.Google app engine - В чем разница между средой разработки приложений и приложениями google app engine

Я пытаюсь написать приложение, использующее движок google и python для сохранения и получения изображения в облачном хранилище Google. Я исследовал, и я знаю, что среда разработки отличается от среды приложения, например: когда я пишу код для dev, мне не нужно объявлять пользователя для аутентификации ... Таким образом, это означает код разработчика и код приложения разные.

, например, о моем Dev код:

BUCKET_NAME = os.environ.get('BUCKET_NAME', 
          app_identity.get_default_gcs_bucket_name()) 
BUCKET = '/' + BUCKET_NAME 

logger.debug('BUCKET_NAME: %s' % BUCKET_NAME) 

def create_file(filename, filedata, **kwargs): 
    """ 
    Create a file. 
    :param filename: 
    :param filedata: 
    :param kwargs: 
    :return: 
    """ 
    bucket_filename = BUCKET + '/' + filename 
    write_retry_params = gcs.RetryParams(backoff_factor=1.1) 
    gcs_file = gcs.open(bucket_filename, 
         'w', 
         content_type=kwargs.get('content_type', 'image/jpeg'), 
         options=kwargs.get('options', {}), 
         retry_params=write_retry_params) 
    gcs_file.write(filedata) 
    gcs_file.close() 

    blobstore_filename = '/gs' + bucket_filename 
    return blobstore.blobstore.create_gs_key(blobstore_filename) 

Эта функция будет создавать и сохранять файл на локальный хранилищу. Например, эта ссылка сохраненного изображения (BLOB):

http://localhost:8000/datastore/edit/blob_key 

Но, это просто LOCALHOST. И я не понимаю, как файл (изображение) будет создан, сохранен и восстановлен в облачном хранилище Google в прикладной среде.

Это не ясно для меня.

Не могли бы вы помочь мне объяснить более подробно о разных средах разработчиков и окружении приложений? И как использовать dev-код в среде приложения?

ответ

1

Данные локального GCS хранятся в вашем локальном хранилище данных с использованием объектов __GSFileInfo__ and __BlobInfo__.

Этот же код используется как для окружения Dev, так и для Live App без каких-либо изменений.

+0

Hi @ ChrisC73, Большое спасибо за объяснение. Но, пожалуйста, объясните мне, могу ли я использовать этот код для сохранения этого файла в облачном хранилище Google? Должен ли я проходить аутентификацию с помощью моего пользователя? Я думаю, что я должен это сделать, но я не могу найти какие-либо документы, которые расскажут об этом случае. В моем случае мне нужно сохранить файл в gcs, а не сохранить в локальный GCS. Просьба помочь. – SWdream

+0

@SWDream: вашему приложению GAE должны быть назначены права доступа к используемому ковку GCS. См. [Здесь] (http://stackoverflow.com/questions/19607855/how-to-authenticate-with-the-google-cloud-storage-library-for-app-engine) для получения дополнительной информации. Обратите внимание, что ведро GCS по умолчанию, созданное для приложения, автоматически предоставит доступ к этому приложению. Однако я не уверен, что если вы можете использовать местоположение GCS из локальной панели запуска GAE. – ChrisC73

+0

Спасибо большое за всех. Я буду исследовать больше и верну вас. – SWdream