為防止OSS檔案被其他人盜鏈而產生額外的流量費用,您配置了Referer防盜鏈來阻止其他網站引用OSS檔案,然而進行測試時,您發現防盜鏈並沒有生效或者效果不符合預期。本文介紹OSS防盜鏈的常見問題以及排查方法。
配置了防盜鏈,但沒有生效?
如果您為OSS配置了Referer防盜鏈,但測試防盜鏈沒有生效,請排查您的瀏覽器、OSS、CDN設定。
排查專案 | 錯誤原因 | 解決辦法 |
瀏覽器 | Referer欄位的值被修改或設定為特定的值。在某些特定的瀏覽器環境下,如微信小程式、iframe等,Referer欄位的值可能會被修改或設定為特定的值。 | 通過OSS日誌或瀏覽器的開發人員工具查詢請求的實際的Referer的值,然後重新設定。具體操作,請參見查看來自其他網站的OSS請求的Referer。 |
OSS | 填寫的Referer不規範。如果您填寫的Referer不規範,則OSS無法正確匹配請求。例如,來自瀏覽器的請求的Referer一般會帶 | 按照OSS的Referer規範填寫。具體規範,請參見Referer配置規範。 |
CDN | CDN沒有配置Referer防盜鏈。使用CDN加速OSS,沒有在CDN配置Referer防盜鏈,導致通過CDN加速網域名稱訪問OSS檔案時,CDN提供了緩衝的檔案而不進行防盜鏈驗證。例如,第一次CDN請求時帶了Referer,因此回源OSS返回正常的檔案,並且CDN對檔案進行了緩衝,後續即使請求不帶Referer,CDN也會響應正常的檔案。 | 如果您使用了CDN加速OSS,請在CDN上完成與OSS上一樣的防盜鏈配置。具體操作,請參見配置Referer防盜鏈。 |
微信小程式環境下訪問OSS檔案,報錯You are denied by bucket referer policy?
在微信小程式中訪問網頁的檔案時,由微信小程式發出的請求的Referer頭部通常會被設定為微信小程式自身的網域名稱,而不是使用者正在訪問的網頁的網域名稱。這是因為微信小程式的網路請求是在微信的用戶端環境中執行的,而不是在傳統的網頁瀏覽器中。為了允許使用者在微信小程式中訪問網頁中引用的OSS檔案,您需要在白名單Referer中添加一條*servicewechat.com
,以確保來自微信小程式的請求不會被Referer防盜鏈策略所阻止。
在瀏覽器中輸入URL訪問OSS檔案,報錯You are denied by bucket referer policy?
您訪問的OSS檔案所在的Bucket被設定了不允許Referer為空白,而在瀏覽器中輸入URL訪問OSS檔案時Referer為空白,因此您的請求被拒絕。如需在瀏覽器中輸入URL訪問OSS檔案,您需要將Bucket設定為允許Referer為空白。
輸入Referer名單時,報錯InlineDataTooLarge
您的防盜鏈Referer名單超過了20 KB大小上限,請減少名單中的條目以滿足限制要求。