我在Amazon S3上託管圖像並在我的Flash應用程序中使用它們。我的應用程序會收到指向S3中圖像的已簽名S3網址。該URL看起來是這樣的(換行增加了清晰度):向Flash發送帶有+符號的URL的請求
http://s3.amazonaws.com/my-bucket/my-image.jpg?
AWSAccessKeyId=AKIAI7PSLIMJFIA2JRQG&
Expires=1313812683&
Signature=yhnSe47GRjReUQlfG/S/A+JJTdo=
的這裏的問題是有可能發生在簽名的+
跡象。如果我按原樣發送+
標誌,那麼瀏覽器會認爲它是一個空格,因爲它應該根據URL規範。真的,S3不應該使用+
標誌,但它似乎是something they overlooked。
通常這不是問題,因爲您只需將+
標誌替換爲%2B
即可。但是,Flash有一些默認行爲會造成困難。
從我所看到的,URLRequest
目標是建立以總是編碼的網址,如果它是通過encodeURI
函數傳遞。我看不出有什麼辦法可以解決這個問題。不幸的是,encodeURI
不會編碼+
標誌,但它確實編碼%
標誌。
這意味着如果我將+
標誌留在那裏,那麼Flash會將其保留,S3認爲我的URL中有一個空格。如果我使用%2B
,則由於編碼爲%
,Flash會將其轉換爲%252B
。衛生署!
有沒有人看到我失蹤的方法呢?
我做的'navigateToURL'和'URLLoader'請求嘗試這樣做,既表現出就像你所需要的網址。你有更多的例子讓我們看看嗎? – Jacksonkr