全部產品
Search
文件中心

Object Storage Service:設定跨域資源共用

更新時間:Aug 30, 2018

跨域資源共用(Cross-origin resource sharing,簡稱CORS)允許Web端的應用程式訪問不屬於本域的資源。OSS提供跨域資源共用介面,方便您控制跨域訪問的許可權。

更多關於跨域資源共用的介紹,請參見開發指南中的設定跨域訪問和API參考中的PutBucketcors。跨域資源共用的完整代碼請參見GitHub

設定跨域資源共用規則

以下代碼用於設定指定儲存空間的跨域資源共用規則:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func main() {
  8. // 建立OSSClient執行個體。
  9. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
  10. if err != nil {
  11. fmt.Println("Error:", err)
  12. os.Exit(-1)
  13. }
  14. bucketName := "<yourBucketName>"
  15. rule1 := oss.CORSRule{
  16. AllowedOrigin: []string{"*"},
  17. AllowedMethod: []string{"PUT", "GET"},
  18. AllowedHeader: []string{},
  19. ExposeHeader: []string{},
  20. MaxAgeSeconds: 200,
  21. }
  22. rule2 := oss.CORSRule{
  23. AllowedOrigin: []string{"http://www.a.com", "http://www.b.com"},
  24. AllowedMethod: []string{"POST"},
  25. AllowedHeader: []string{"Authorization"},
  26. ExposeHeader: []string{"x-oss-test", "x-oss-test1"},
  27. MaxAgeSeconds: 100,
  28. }
  29. // 設定跨域資源共用規則。
  30. err = client.SetBucketCORS(bucketName, []oss.CORSRule{rule1, rule2})
  31. if err != nil {
  32. fmt.Println("Error:", err)
  33. os.Exit(-1)
  34. }
  35. }

獲取跨域資源共用規則

以下代碼用於獲取跨域資源共用規則:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func main() {
  8. // 建立OSSClient執行個體。
  9. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
  10. if err != nil {
  11. fmt.Println("Error:", err)
  12. os.Exit(-1)
  13. }
  14. bucketName := "<yourBucketName>"
  15. // 獲取跨域資源共用規則。
  16. corsRes, err := client.GetBucketCORS(bucketName)
  17. if err != nil {
  18. fmt.Println("Error:", err)
  19. os.Exit(-1)
  20. }
  21. fmt.Println("Bucket CORS:", corsRes.CORSRules)
  22. }

刪除跨域資源共用規則

以下代碼用於刪除指定儲存空間的所有跨域資源共用規則:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func main() {
  8. // 建立OSSClient執行個體。
  9. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
  10. if err != nil {
  11. fmt.Println("Error:", err)
  12. os.Exit(-1)
  13. }
  14. bucketName := "<yourBucketName>"
  15. // 刪除跨域資源共用規則。
  16. err = client.DeleteBucketCORS(bucketName)
  17. if err != nil {
  18. fmt.Println("Error:", err)
  19. os.Exit(-1)
  20. }
  21. }