我正在創建簽名的URL並將它們發送到外部系統供以後使用。不幸的是,有一些長度參數不允許傳遞極長的字符串。最近,似乎簽名的URL被重新格式化和擴展,隨後打破了我的應用程序。縮短S3簽名的URL
是否有一些方法可以從S3生成較短的URL?由於多種原因,我不希望依賴第三方URL縮短服務(這是對URL生成的額外請求,它增加了一個失敗點)。
我正在創建簽名的URL並將它們發送到外部系統供以後使用。不幸的是,有一些長度參數不允許傳遞極長的字符串。最近,似乎簽名的URL被重新格式化和擴展,隨後打破了我的應用程序。縮短S3簽名的URL
是否有一些方法可以從S3生成較短的URL?由於多種原因,我不希望依賴第三方URL縮短服務(這是對URL生成的額外請求,它增加了一個失敗點)。
可以內亞馬遜S3直接建立一個非常簡單的短網址:
mybucket.s3-website-ap-southeast-2.amazonaws.com
pic1.jpg
Website Redirect Location
然後,當您訪問零長度對象(例如mybucket.s3-website-ap-southeast-2.amazonaws.com/pic.jpg
)時,它實際上會重定向到存儲在元數據中的長URL。
簡單,無需數據庫!
這太好了。爲了分享我的使用案例,我使用curl將文件上傳到S3,並且必須在上傳之前取出重定向。 'curl -Ls -o/dev/null -w%{url_effective} SHORT_URL | xargs curl -T file.png',其中SHORT_URL是縮短的AWS url。 – switz
這遠不是一個簡短的網址..(mybucket.s3-website-ap-southeast-2.amazonaws.com/pic.jpg) –
我想你可以創建類似'bucket.s3.amazonaws.com/short/ <隨機串>的東西,並且讓它成爲一個HTML文件,將JS重定向到簽名的URL。 – ceejayoz
我在一個簡單的CURL命令'curl -T [file] [url]'中使用了簽名的URL,所以javascript不會被執行。 – switz
你可以在S3上設置301s,但這有點複雜。雖然可能。 http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html – ceejayoz