解决浏览器跨域(CORS)问题的实践 使用ZOS软件开发工具包 下面展示JAVA SDK的使用案例: > 使用SDK需要您在您的机器上配置好java以及Maven等环境,具体操作请参考JAVA SDK文档 您可以使用setBucketCrossOriginConfiguration 设置跨域规则,并分别通过 getBucketCrossOriginConfiguration 、deleteBucketCrossOriginConfiguration方法获取或删除您桶上的跨域访问规则。 java import com.amazonaws.ClientConfiguration; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.Protocol; import com.amazonaws.services.s3.model.; import java.util.ArrayList; import java.util.List; public class CORS { public static String ACCESSKEY "AK";//此处请改成您的AK public static String SECRETKEY "SK";//此处请改成您的SK public static String ENDPOINT "EndPoint";//此处请改成您桶对应的EndPoint public static String BUCKETNAME "bucketff177"; public static void main(String[] string){ AmazonS3 s3Client null; try { // 当使用HTTPS协议且采用自签名认证时,需关闭证书检查 // System.setProperty("com.amazonaws.sdk.disableCertChecking", "true"); // 使用凭据和配置建立连接 AWSCredentials credentials new BasicAWSCredentials(ACCESSKEY, SECRETKEY); ClientConfiguration awsClientConfig new ClientConfiguration(); // 使用V2签名时,采用"S3SignerType" awsClientConfig.setSignerOverride("S3SignerType"); // 使用V4签名时,采用"AWSS3V4SignerType" ; // 连接默认使用HTTPS协议,使用HTTP协议连接时需要显式指定 awsClientConfig.setProtocol(Protocol.HTTP); s3Client AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials)) .withClientConfiguration(awsClientConfig) .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(ENDPOINT, "")) .disableChunkedEncoding() .build(); System.out.print("connect successn"); }catch (Exception e) { System.out.print("request failn"); System.out.print(e.getMessage()); } // setBucketCrossOriginConfiguration CORSRule rule new CORSRule(); rule.setId("test1"); rule.setAllowedMethods(CORSRule.AllowedMethods.GET,CORSRule.AllowedMethods.PUT); List orgs new ArrayList(); orgs.add(""); rule.setAllowedOrigins(orgs); BucketCrossOriginConfiguration config new BucketCrossOriginConfiguration(); List lr new ArrayList (); lr.add(rule); config.setRules(lr); SetBucketCrossOriginConfigurationRequest req new SetBucketCrossOriginConfigurationRequest(BUCKETNAME,config); s3Client.setBucketCrossOriginConfiguration(req); // getBucketCrossOriginConfiguration GetBucketCrossOriginConfigurationRequest req1 new GetBucketCrossOriginConfigurationRequest(BUCKETNAME); BucketCrossOriginConfiguration config1 s3Client.getBucketCrossOriginConfiguration(req1); // deleteBucketCrossOriginConfiguration DeleteBucketCrossOriginConfigurationRequest req2 new DeleteBucketCrossOriginConfigurationRequest(BUCKETNAME); s3Client.deleteBucketCrossOriginConfiguration(req2); } }
来自: