為防止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大小上限,請減少名單中的條目以滿足限制要求。