2010-05-10 90 views
2

我有幾個PDF文件存儲在Amazon S3中。每個文件都與一個用戶相關聯,只有文件所有者可以訪問該文件。我已在我的下載頁面中強制執行此操作。但實際的PDF鏈接指向任何人都可訪問的Amazon S3網址。Amazon S3強制訪問控制

如何執行訪問控制規則,這個網址是什麼?(不使我的服務器爲所有PDF下載鏈接的代理)

回答

8

我會建議使用Amazon S3的authenticated REST URLs與到期日期。它們允許臨時訪問非公共S3對象。

也就是說,如果他們要共享URL,那麼阻止他們共享文件本身的原因是什麼?

+0

+1兩點完全一致。 – 2010-05-10 22:22:56

+0

感謝您的鏈接。我知道第二個問題,但我的客戶擔心有人猜測URL(不要問我怎麼......)。 – 2010-05-10 23:19:48

+2

好的一面是,它們已經鎖定在事實上可以控制的一面。 :-) – ceejayoz 2010-05-11 02:04:53

6

您的S3帳戶上的每個文件都可以具有特殊訪問權限(ACL)。您應該將您所有的PDF ACL設置爲private。然後沒有人能夠訪問它們。

S3有一個API,允許您「臨時」授予讀取權限。例如Amazon's S3 PHP Library有一個getAuthenticatedURL (string $bucket, string $uri, integer $lifetime, [boolean $hostBucket = false], [boolean $https = false])函數。

這將允許您在規定的時間內(如5分鐘)允許訪問PDF - 如果您立即將用戶重定向到S3,這足夠綽綽有餘。

+0

+1。感謝你的回答。 – 2010-05-10 23:20:13