祝你有个愉快的一天。
我正在尝试编写一个应用程序使用谷歌应用程序引擎和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。我不明白在应用程序环境中创建,存储和检索文件(图像)到谷歌云存储的方式。
这对我来说并不清楚。
您能帮我解释一下开发环境和应用环境之间的不同之处吗?以及如何在应用环境中使用开发代码?
答案 0 :(得分:1)
使用__GSFileInfo__ and __BlobInfo__
实体将本地GCS数据存储在本地数据存储中。
相同的代码用于Dev和Live App环境,无需更改。