2013-08-29 31 views
3

我最近實現了Fine Uploader,並且它已經大部分成功。但是一些用戶無法上傳。他們都使用現代瀏覽器(IE10,FF和Chrome)。一個讓我遠程訪問他們的機器,我可以在Chrome和FF上試用它。Fine Uploader將「Policy過期」消息發送到S3的某些

我得到了兩個同樣的錯誤:

[10:45:28.330] "[FineUploader 3.8.0] Received response status 403 with body: <?xml version="1.0" encoding="UTF-8"?> 
<Error><Code>AccessDenied</Code><Message>Invalid according to Policy: Policy expired.</Message><RequestId>--removed--</RequestId><HostId>--removed--</HostId></Error>" 

有什麼事情與他們的計算機上的時區設置,在那裏它產生無效的策略?

回答

4

由於時間是UTC,時區設置將不起作用。但是,如果用戶計算機上的時間不準確(比如5分鐘或更長時間),那麼該策略將會過期。

Fine Uploader將到期日期設置爲5分鐘(再次以UTC表示)。使用的日期在瀏覽器中生成,因此您的客戶機時間將被使用。如果客戶端計算機的時鐘速度降低5分鐘或更長時間,則亞馬遜處理該策略時,該策略將被視爲過期。

我相當確信這個問題是由於客戶的機器時鐘有明顯的漂移。如果您驗證了這一點,我建議您指示他們保持系統時鐘與時間服務器同步。

更新:Fine Uploader 5.5增加了一項新功能,可以讓您克服用戶機器/瀏覽器上的極端時鐘漂移。有關更多信息,請參閱clock drift section on the S3 feature page

+0

謝謝。我已經爲明天的問題設置了遠程訪問另一位客戶,然後會確認。快速的時鐘是重要還是慢? 5分鐘的東西可以在任何地方配置嗎? –

+0

在這種特殊情況下,快速時鐘不會導致亞馬遜出現任何錯誤。目前,到期日期不可配置。離正確時間5分鐘或更短的時鐘是不尋常的,應該真正解決。我可以看到爲什麼你可能想簡單地增加用於補償5-10分鐘的時鐘的到期日期,但是關於1小時關閉或者1天休息等等的時鐘呢?我認爲日期可以設定在將來30年後的某個日子,但是我覺得5分鐘是合理和安全的到期日期。 –

+0

電腦出現問題的人向我保釋,所以我無法確認時間是否是問題所在。任何想過在服務器上設置過期時間作爲簽名請求的一部分?這樣你就不必擔心用戶有時間問題。 –