282
阿裏雲
跨域資源共享__Java-SDK_SDK 參考_對象存儲 OSS-阿裏雲
跨域資源共享(CORS)允許web端的應用程序訪問不屬於本域的資源。OSS提供接口方便開發者控製跨域訪問的權限。更多關於跨域資源共享的內容請參考 跨域訪問
設定CORS規則
通過setBucketCors 方法將指定的存儲空間上設定一個跨域資源共享CORS的規則,如果原規則存在則覆蓋原規則。具體的規則主要通過CORSRule類來進行參數設置。代碼如下:
SetBucketCORSRequest request = new SetBucketCORSRequest();
request.setBucketName(bucketName);
//CORS規則的容器,每個bucket最多允許10條規則
ArrayList<CORSRule> putCorsRules = new ArrayList<CORSRule>();
CORSRule corRule = new CORSRule();
ArrayList<String> allowedOrigin = new ArrayList<String>();
//指定允許跨域請求的來源
allowedOrigin.add( "https://www.b.com");
ArrayList<String> allowedMethod = new ArrayList<String>();
//指定允許的跨域請求方法(GET/PUT/DELETE/POST/HEAD)
allowedMethod.add("GET");
ArrayList<String> allowedHeader = new ArrayList<String>();
//控製在OPTIONS預取指令中Access-Control-Request-Headers頭中指定的header是否允許。
allowedHeader.add("x-oss-test");
ArrayList<String> exposedHeader = new ArrayList<String>();
//指定允許用戶從應用程序中訪問的響應頭
exposedHeader.add("x-oss-test1");
corRule.setAllowedMethods(allowedMethod);
corRule.setAllowedOrigins(allowedOrigin);
corRule.setAllowedHeaders(allowedHeader);
corRule.setExposeHeaders(exposedHeader);
//指定瀏覽器對特定資源的預取(OPTIONS)請求返回結果的緩存時間,單位為秒。
corRule.setMaxAgeSeconds(10);
//最多允許10條規則
putCorsRules.add(corRule);
request.setCorsRules(putCorsRules);
oss.setBucketCORS(request);
提示:
- 每個存儲空間最多隻能使用10條規則。
- AllowedOrigins和AllowedMethods都能夠最多支持一個”*”通配符。”*”表示對於所有的域來源或者操作都滿足。
- 而AllowedHeaders和ExposeHeaders不支持通配符。
獲取CORS規則
我們可以參考存儲空間的CORS規則,通過GetBucketCors方法。代碼如下:
ArrayList<CORSRule> corsRules;
//獲得CORS規則列表
corsRules = (ArrayList<CORSRule>) oss.getBucketCORSRules(bucketName);
for (CORSRule rule : corsRules) {
for (String allowedOrigin1 : rule.getAllowedOrigins()) {
//獲得允許跨域請求源
System.out.println(allowedOrigin1);
}
for (String allowedMethod1 : rule.getAllowedMethods()) {
//獲得允許跨域請求方法
System.out.println(allowedMethod1);
}
if (rule.getAllowedHeaders().size() > 0){
for (String allowedHeader1 : rule.getAllowedHeaders()) {
//獲得允許頭部列表
System.out.println(allowedHeader1);
}
}
if (rule.getExposeHeaders().size() > 0) {
for (String exposeHeader : rule.getExposeHeaders()) {
//獲得允許頭部
System.out.println(exposeHeader);
}
}
if ( null != rule.getMaxAgeSeconds()) {
System.out.println(rule.getMaxAgeSeconds());
}
}
刪除CORS規則
用於關閉指定存儲空間對應的CORS並清空所有規則。
// 清空bucket的CORS規則
oss.deleteBucketCORSRules(bucketName);
最後更新:2016-11-23 16:58:16
上一篇:
生命周期管理__Java-SDK_SDK 參考_對象存儲 OSS-阿裏雲
下一篇:
設置訪問日誌__Java-SDK_SDK 參考_對象存儲 OSS-阿裏雲
存儲空間概覽__管理存儲空間_控製台用戶指南_對象存儲 OSS-阿裏雲
推通知給Android設備__推送相關_API 列表_OpenAPI 2.0_移動推送-阿裏雲
STS常見問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
獲取子域名的解析記錄列表__解析管理接口_API文檔_雲解析-阿裏雲
下載域名日誌__日誌信息接口_API 手冊_CDN-阿裏雲
如何查看代金券?___代金券_代金券及推薦碼_財務-阿裏雲
附錄二 SQL函數表__附錄_使用手冊_分析型數據庫-阿裏雲
DRDS常見問題__常見問題_產品使用問題_分布式關係型數據庫 DRDS-阿裏雲
當日已備案成功,為何網站仍然無法訪問?__備案成功後了解_常見問題_備案-阿裏雲
修改共享帶寬包-增加公網IP__NAT網關相關接口_API 參考_雲服務器 ECS-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲