跨地域资源共享

跨域资源共享(Cross-origin resource sharing,简称CORS)允许Web端的应用程序访问不属于本域的资源。Inspur OSS提供存储桶跨域资源共享接口,以便于控制跨域访问的权限。

获取跨地域资源共享规则

以下代码用于获取跨地域资源共享规则

            import oss

            # 设置基本信息
            APIKey = '<your_API_key>'
            APIKeySecrete = '<your_API_key_secrete>'
            EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
            BucketName = '<your_bucket_name>'

            # 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
            auth = oss.Auth(APIKey, APIKeySecrete)

            # 设置管理权限,节点和要创建的储存桶名字, 这里节点以华北三为例
            bucket = oss.Bucket(auth, EndPoint, BucketName)

            # 获取跨地域资源共享规则
            try:
                c = bucket.get_bucket_cors()
            except oss.NoSuchCors:
                print("The CORS of the current bucket is not set")
            else:
                for r in c.rules:
                    print("Allowed Origins: " + r.allowed_origins[0])
                    print("Allowed Methods: " + r.allowed_methods[0])
                    print("Allowed Headers: " + r.allowed_headers[0])
                    print("Expose Headers: " + r.expose_headers[0])
                    print("Max Age Seconds: " + str(r.max_age_seconds))

设置跨地域资源共享规则

以下代码用于设置跨地域资源共享规则

            import oss

            # 设置基本信息
            APIKey = '<your_API_key>'
            APIKeySecrete = '<your_API_key_secrete>'
            EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
            BucketName = '<your_bucket_name>'

            # 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
            auth = oss.Auth(APIKey, APIKeySecrete)

            # 设置管理权限,节点和要创建的储存桶名字, 这里节点以华北三为例
            bucket = oss.Bucket(auth, EndPoint, BucketName)

            # 设置跨地域资源共享规则
            rules = oss.CorsRule(allowed_origins=['*'], allowed_methods=['GET'], allowed_headers=['*'], expose_headers=[''], max_age_seconds=['5'])
            bucket.put_bucket_cors(oss.BucketCors([rules]))

删除跨地域资源共享规则

以下代码用于删除跨地域资源共享规则

            import oss

            # 设置基本信息
            APIKey = '<your_API_key>'
            APIKeySecrete = '<your_API_key_secrete>'
            EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
            BucketName = '<your_bucket_name>'

            # 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
            auth = oss.Auth(APIKey, APIKeySecrete)

            # 设置管理权限,节点和要创建的储存桶名字, 这里节点以华北三为例
            bucket = oss.Bucket(auth, EndPoint, BucketName)

            # 删除跨地域资源共享规则
            bucket.delete_bucket_cors()