2016-11-20 92 views
3

我有一個firebase應用程序,並且我使用Firebase Storage來上傳圖像。在URL SI回來時,我用firebase web sdk上傳是合理的:如何縮短Google Cloud Storage簽名下載網址?

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

然而,由於Firebase不支持storage API在他們node.js SDK,我必須使用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 
[email protected]com&Expires=1899950400&Si 
gnature=fyotCYAbiWGuBGjwL0YDpByqZsKTdrwd9%2F7bZ88Rw8zP53dyEvcrIer6paYdzb%2BlH7OmJSRfcSxaAj7ur 
GhZw20a4k4b5InLufqrOhSuYAE6w5vM2Hp8vz1XgSXl9jOFym2wMPEn7RkVwjxnT3QJKSBa0vqnkXX0wQUF4CjvHjUxbS 
Tc9jj0NeNYUNmHGlZlVcKf%2BgE00rG9gt3QyCGAMt55h3kltMbyT%2FvnAYh%2FwuvhbVhX%2FNSCjieYb13KjjmDTgt 
l5NU5nWY9Cu0QBraAbn6GlsUUvj0hBB2Gi7OHnUNi218w3EPehy7YAy6RhTcnuhiZlFaLX3TSmBS%2BX%2F3%2BoA%3D% 
3D 

我保留因爲我要存儲的圖像開始接近6-7位數字範圍,所以這會成爲一種存儲負擔。

有沒有辦法縮短這個?

回答

1

簡短的回答是否定的,你不能縮短它。長的回答是,你不想縮短它:簽名是一個加密簽名散列,它封裝了上面提供的信息(actionexpires),並允許最終用戶只要URL有效就執行該操作。

如果是較短的,有人能猜出網址爲您的數據,或者可能通過已知明文攻擊打破它(與給定的已知明文散列它以同樣的方式,看什麼比賽)。

有關更多信息,請參閱GCS Docs on Signed URLs