当前位置: 首页 > 知识库问答 >
问题:

获取文件的公共URL-谷歌云存储-应用程序引擎(Python)

杨豪
2023-03-14

是否有与getPublicUrl PHP方法等效的python?

$public_url = CloudStorageTools::getPublicUrl("gs://my_bucket/some_file.txt", true);

我正在使用Google Cloud Client Library for Python存储一些文件,我正在试图找到一种通过编程获得我存储的文件的公共URL的方法。

共有3个答案

闻梓
2023-03-14

丹尼尔,艾萨克,谢谢你们。

在我看来,谷歌有意让你不要直接从GCS服务(带宽原因?不知道)。因此,根据文档,这两种选择要么使用Blobstore,要么使用图像服务(用于图像)。

我最终做的是通过GCS向blobstore提供文件。

要从GCS路径获取blobstore密钥,我使用了:

blobKey = blobstore.create_gs_key('/gs' + gcs_filename)

然后,我在服务器上公开了这个URL-Main.py:

app = webapp2.WSGIApplication([
...
    ('/blobstore/serve', scripts.FileServer.GCSServingHandler),
...

文件服务器。py:

class GCSServingHandler(blobstore_handlers.BlobstoreDownloadHandler):
    def get(self):
        blob_key = self.request.get('id')
        if (len(blob_key) > 0):
            self.send_blob(blob_key)
        else: 
            self.response.write('no id given')
阎宾实
2023-03-14

您需要使用图像API中的get\u serving\u url。正如该页所解释的那样,您需要首先调用create\u gs\u key(),以获取要传递给图像API的密钥。

易瀚漠
2023-03-14

请参阅有关如何构建URL的https://cloud.google.com/storage/docs/reference-uris。

对于公共URL,有两种格式:

http(s)://storage.googleapis.com/[bucket]/[object]

http(s)://[bucket].storage.googleapis.com/[object]

示例:

bucket = 'my_bucket'
file = 'some_file.txt'
gcs_url = 'https://%(bucket)s.storage.googleapis.com/%(file)s' % {'bucket':bucket, 'file':file}
print gcs_url

将输出以下内容:

https://my_bucket.storage.googleapis.com/some_file.txt

 类似资料:
  • 我正在看新的谷歌云数据存储,看起来很棒。但有件事我不明白。。。它应该替代谷歌应用引擎数据存储吗?我如何在GAE内部使用它?它们之间有什么区别? 我在Java有一个GAE应用程序,它使用3个实体,每个实体都有数千行,我需要经常做连接...

  • Google API客户端库 Google云存储客户端库 Google云存储API Google Cloud Storage JSON API Java客户端库 我仍然不知道每一个都是做什么的,我不知道如何在我的android客户端中实现云存储。 如果我使用云存储,为什么我需要应用引擎后端应用?我的后端不需要API,对吗?我可以使用Google Cloud Storage JSON API直接消耗

  • 我正在为PHP开发谷歌应用程序引擎的应用程序,我需要使用file_get_contents来解析一个网站。 但是,我的服务器出现了问题。例如,我运行一行代码,如下所示: 服务器返回警告,无法执行我计划执行的操作。 警告:file_get_contents():php_network_getaddresses:getaddrinfo失败:在数据库查找过程中发生不可恢复的错误。在C:\gae\u wo

  • 我有一个在谷歌应用程序引擎上运行的Django应用程序。 我希望所有对静态内容的请求将不是由Django应用程序服务,而是一个谷歌云存储桶,我已经在上面上传了应用程序需要的所有内容。 存储桶具有公共访问权限,我可以通过浏览器查看静态内容,其URL如下所示: https://www.mydjangoapp.com/static/image.jpg 将由存储提供服务:https://storage.g