Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 网站托管在App Engine上,如何访问云存储中的图像?_Google App Engine_Google Cloud Storage - Fatal编程技术网

Google app engine 网站托管在App Engine上,如何访问云存储中的图像?

Google app engine 网站托管在App Engine上,如何访问云存储中的图像?,google-app-engine,google-cloud-storage,Google App Engine,Google Cloud Storage,我在AppEngine上有一个web应用程序,Firestore中有数据,云存储中有一些图像。我可以与Firestore fine通信以获取数据,例如具有文件路径的文件名: 收藏名称“猫” 'name': 'Black Cat' 'filename': 'cat_black.jpg' 在云存储中,我有一个以firestore中的集合命名的bucket,我的cat文档存储在该集合中。桶中有一个名为“cat_black.jpg”的jpg文件。如何以只有我的应用程序引擎才能获取和显示照片的安全方式链

我在AppEngine上有一个web应用程序,Firestore中有数据,云存储中有一些图像。我可以与Firestore fine通信以获取数据,例如具有文件路径的文件名:

收藏名称“猫”

'name': 'Black Cat'
'filename': 'cat_black.jpg'
在云存储中,我有一个以firestore中的集合命名的bucket,我的cat文档存储在该集合中。桶中有一个名为“cat_black.jpg”的jpg文件。如何以只有我的应用程序引擎才能获取和显示照片的安全方式链接到此文件

# App Engine Web UI

<img src="https://storage.cloud.google.com/Cats/cat_black.jpg">
我需要编辑bucket上的权限吗


编辑:我知道我的应用程序引擎创建了自己的bucket,所以默认情况下它应该可以访问bucket,我需要先用Python检索图像吗?我想为每个img src使用一个jinja2模板函数来运行API请求并获取其各自的映像。

默认情况下,当您为项目创建一个bucket时

如果要设置允许其他用户访问bucket及其内容的权限,请参阅

如果您想在不进行身份验证的情况下将其公开,则需要对读卡器具有权限[

您还可以查看此说明以了解更多详细信息

有多种方法可以引用存储桶中的对象: http://BUCKET_NAME.storage.googleapis.com/OBJECT_NAME 或 http://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME

别忘了使用你的名字

Defaul AppEngine存储桶的名称为:.appspot.com。请注意,它使用的是项目id而不是项目名称。因此,要引用默认存储桶,您需要使用以下命名约定:

http://.appspot.com.storage.googleapis.com/OBJECT_NAME 或 http://storage.googleapis.com/.appspot.com/OBJECT_NAME


你不需要先在Python中检索图像。

我明天再做一次尝试!我觉得我确实尝试过这样做,它说我没有凭证来做,但我有一个令牌。当我部署我的应用程序引擎时,它创建了一个以项目命名的bucket,这是我需要正确使用的bucket?例如,我的项目是叫做cats,我创建的水桶叫做cats.appspot.com,所以我会把它称为http://storage.googleapis.com/cats.appspot.com/cat_black.jpg? 或者我会创建另一个名为“任何东西”的存储桶,例如cat照片,然后我的应用程序应该可以访问它吗?请检查更新的答案。您不需要创建新的存储桶,但是t如果您愿意,可以这样做。默认情况下,当您为项目创建bucket时,您的应用程序具有读取和写入该bucket所需的所有权限。哦,好吧!明天我将在工作中再次尝试,并将返回报告。bucket是否需要公开?这取决于您希望如何为您的服务/网站设计身份验证。请检查upd不带身份验证的答案。如果您想在不进行身份验证的情况下将其公开,则需要对读者具有诱惑权限[