如何缩短 Google Cloud Storage 签名的下载 URL?

Bra*_*don 4 google-cloud-storage firebase firebase-storage

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

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

但是,由于在他们的SDKFirebase中不支持,我必须使用:storage APInode.jsGoogle Cloud Storage SDK

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

这将返回长得令人望而却步:

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
Run Code Online (Sandbox Code Playgroud)

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

有没有办法缩短这个?

Mik*_*ald 5

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

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

有关更多信息,请参阅有关签名 URLGCS 文档