我有存儲在Amazon S3的音頻文件,可以從基於網絡的音樂播放器應用程序訪問,也可以從移動應用程序訪問。即使沒有登錄的用戶也應該可以訪問音樂。不過,我不希望人們使用鏈接下載內容。這可以在s3中完成嗎?防止從亞馬遜s3直接下載音頻文件
謝謝
我有存儲在Amazon S3的音頻文件,可以從基於網絡的音樂播放器應用程序訪問,也可以從移動應用程序訪問。即使沒有登錄的用戶也應該可以訪問音樂。不過,我不希望人們使用鏈接下載內容。這可以在s3中完成嗎?防止從亞馬遜s3直接下載音頻文件
謝謝
您可以根據HTTP引用來限制訪問。這不是防彈(推薦人可以被欺騙),但它會阻止隨意下載。
您使用存儲桶策略來限制Referrer的可能值。
有此頁面上的一個例子(稍微向下滾動)http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html
這裏是他們的榜樣:
{
"Version":"2008-10-17",
"Id":"http referer policy example",
"Statement":[
{
"Sid":"Allow get requests originated from www.example.com and example.com",
"Effect":"Allow",
"Principal":"*",
"Action":"s3:GetObject",
"Resource":"arn:aws:s3:::examplebucket/*",
"Condition":{
"StringLike":{
"aws:Referer":[
"http://www.example.com/*",
"http://example.com/*"
]
}
}
}
]
}
你也可以做簽署的網址到期 - 這將阻止人們鏈接到您的內容來自其他網站。
一種情況浮現在腦海:
當你的音樂播放器應用程序要玩的東西,它要問你的後端的URL到MP3。您的後端可以生成將「將過期時間」參數[1]設置爲10秒的URL。
這樣,後端返回的URL只能用於10秒,這對於音樂播放器從S3啓動下載應該足夠了。
當然,如果用戶在10秒窗口中看到某種類型的HTTP嗅探器中的URL並開始下載,用戶可以下載該文件。
但是,沒有防彈的方法來保護用戶免受他們設備訪問的內容的掌握。如果內容交付給設備,那麼總是有足夠的技術人員掌握它的方法。
p.s.如果您的MP3播放器支持尋找(特別是通過發送另一個HTTP範圍請求來尋找),那麼您必須重新獲得一個新的URL,並在後端刷新「expires」參數。
[1] http://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html
讓我看看,如果我得到了它:你有訪問音樂和它流到客戶端(瀏覽器,應用等)web應用程序?如果是這樣,您可以在S3上使內容保密,並讓您的應用通過您的AWS /密鑰進行訪問。 – Viccari 2013-02-25 15:32:17