【问题标题】:How do I shorten Google Cloud Storage Signed download URLs?如何缩短 Google Cloud Storage 签名下载 URL?
【发布时间】:2017-04-03 17:20:43
【问题描述】:

我有一个firebase 应用程序,我使用Firebase Storage 上传图片。我使用firebase web sdk 上传时返回的URLs 是合理的:

https://firebasestorage.googleapis.com/v0/b/projectId.appspot.com/o/image.jpg?alt=media&token=51183d4a-551a-41e2-b620-14b44b8c86ed

但是,由于Firebase 在他们的node.js SDK 中不支持storage API,我必须使用Google Cloud Storage SDK

bucketRef.upload(localImagePath, options, (err, file, response) => {
                    file.getSignedUrl({
                        action: 'read',
                        expires: '03-17-2030'
                    }, (err, url) => {
                        console.log(url)
                    })
                })

这会返回令人望而却步的长:

https://storage.googleapis.com/projectId.appspot.com/image.jpg?Googl
eAccessId=firebase-adminsdk-xfe5z@projectId.iam.gserviceaccount.com&Expires=1899950400&Si
gnature=fyotCYAbiWGuBGjwL0YDpByqZsKTdrwd9%2F7bZ88Rw8zP53dyEvcrIer6paYdzb%2BlH7OmJSRfcSxaAj7ur
GhZw20a4k4b5InLufqrOhSuYAE6w5vM2Hp8vz1XgSXl9jOFym2wMPEn7RkVwjxnT3QJKSBa0vqnkXX0wQUF4CjvHjUxbS
Tc9jj0NeNYUNmHGlZlVcKf%2BgE00rG9gt3QyCGAMt55h3kltMbyT%2FvnAYh%2FwuvhbVhX%2FNSCjieYb13KjjmDTgt
l5NU5nWY9Cu0QBraAbn6GlsUUvj0hBB2Gi7OHnUNi218w3EPehy7YAy6RhTcnuhiZlFaLX3TSmBS%2BX%2F3%2BoA%3D%
3D

我将这些 URL 保存在 firebase 中,因此这会成为一种存储负担,因为我存储的图像数量开始接近 6-7 位范围。

有没有办法缩短这个?

【问题讨论】:

    标签: firebase google-cloud-storage firebase-storage


    【解决方案1】:

    简短的回答是否定的,你不能缩短它。长答案是您不想缩短它:签名是一个加密签名的哈希,它封装了上面提供的信息(actionexpires),并让最终用户执行该操作,只要 URL 是有效。

    如果它更短,那么有人可能会猜出您数据的 URL,或者可能会通过已知的明文攻击破坏它(使用给定的已知明文以相同的方式对其进行散列并查看匹配的内容)。

    请参阅GCS Docs on Signed URLs 了解更多信息。

    【讨论】:

      【解决方案2】:

      仅供参考,如果您有多个网址,您可以将它们压缩并节省一半左右:

      len(one_url) == 617
      len(zlib.compress(one_url)) == 494
      
      len(my_12_urls_object) == 7836
      len(zlib.compress(my_12_urls_object)) == 3583
      

      如果它们都同时签名,您可能会节省更多,但是,我的都是在不同时间签名的,因此 URL 的共同点较少。

      我的用例是我将具有照片缩略图列表的对象发送到一个搜索 api,该 api 施加了最大 json 对象大小。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        • 1970-01-01
        • 2014-01-12
        • 2016-05-16
        • 2017-07-06
        • 2021-07-17
        • 1970-01-01
        相关资源
        最近更新 更多