2017-10-21 138 views
0

我正在使用這個類來生成一個包含策略部分的直接上載表單。php s3預先簽署的網址沒有sdk

https://www.designedbyaturtle.co.uk/2015/direct-upload-to-s3-using-aws-signature-v4-php/

的上傳正在努力,但我希望能夠顯示從URL網站上的文件,爲用戶未做文件公開。

我知道SDK有一個簡單的方法,但我希望我可以用現有的代碼來做,因爲這已經創建了策略。我想知道什麼是從頭創建此網址的步驟?將整個臃腫的SDK包含在一個函數中似乎過分了。

+1

我說你想要的http://docs.aws.amazon.com/AmazonS3/開始latest/API/Welcome.html,並找到關於如何創建簽名URL的REST API。雖然您的SDK大小膨脹可能是一個問題,但它的自動加載非常棒,並且內存影響應該很低。 – Scuzzy

+0

爲直接上載簽名的*策略*與爲預先簽名的URL簽名的*規範請求*完全不同。但是,該示例中有用於構造簽名密鑰的有用代碼...因此這是一個有用的開始。 –

回答

0

創建S3預簽名的URL實際上非常容易獲得GET請求。 PUT相當容易,但POST很複雜,需要一個策略。

挑戰在於創建簽名代碼。亞馬遜支持兩個版本v2和v4。 v2正在被淘汰。代碼有點複雜。

如果您只爲GET請求創建預簽名URL,請編寫自己的代碼。對於其他任何事情,我都認真推薦使用SDK。

下面是使用不帶AWS SDK的PHP使用S3V4預先簽署S3 URL的源代碼的鏈接。

S3LINK-V4.PHP

+0

我通過使用一些函數和創建一個輕量級類來解決它,這個API真的很臃腫。 – xmxmxmx

+0

我接受你的答案,因爲你困擾。我實際上使用了一個基於你剛剛發佈的修改後的代碼,所以你是正確的,謝謝。 – xmxmxmx