谷歌应用引擎 - 谷歌应用引擎开发环境和应用程序环境之间有什么不同

时间:2015-07-27 05:08:17

标签: python google-app-engine google-cloud-storage

祝你有个愉快的一天。

我正在尝试编写一个应用程序使用谷歌应用程序引擎和python来保存和检索图像到谷歌云存储。我研究并且我知道,开发环境与应用程序环境完全不同,例如:当我为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)

此功能将创建文件并将其保存到localhost数据存储区。例如,这是存储图像(blob)的链接:

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

但是,它只是LOCALHOST。我不明白在应用程序环境中创建,存储和检索文件(图像)到谷歌云存储的方式。

这对我来说并不清楚。

您能帮我解释一下开发环境和应用环境之间的不同之处吗?以及如何在应用环境中使用开发代码?

1 个答案:

答案 0 :(得分:1)

使用__GSFileInfo__ and __BlobInfo__实体将本地GCS数据存储在本地数据存储中。

相同的代码用于Dev和Live App环境,无需更改。