IBM云存储,使用AWS开发工具包创建存储桶时出错

时间:2020-06-24 04:03:14

标签: websphere ibm-cloud cloud-storage

尝试访问ibm云存储时遇到错误

具有指定配置代码的容器存储位置不可用(服务:Amazon>状态代码:400。

请参阅我正在使用aws s3客户端sdk在ibm云存储中创建存储区的代码段。

    String accessKey = (ACCESS_KEY);
    String secretKey = (SECRET_KEY);
    AWSCredentials credentials = new BasicAWSCredentials(accessKey,
            secretKey);
    AmazonS3Client s3service = new AmazonS3Client(credentials);
    s3service.setEndpoint(END_POINT);
    s3service.createBucket("samplebucket");

以上代码仅适用于我们南端端点(s3.us-south.cloud-object-storage.appdomain.cloud)

根据ibm官方文档[0],存在用于不同地区的其他端点,但是使用上述代码都无法正常工作。

[0]-https://cloud.ibm.com/docs/cloud-object-storage-infrastructure?topic=cloud-object-storage-infrastructure-select-regions-and-endpoints

1 个答案:

答案 0 :(得分:0)

我以如何在指定的区域/位置使用Java SDK为例

String location = "us"; 
AmazonS3 cosClient = createClient(apiKey, serviceInstanceId, endpointUrl, location);

createClient静态方法如下所示

 public static AmazonS3 createClient(String apiKey, String serviceInstanceId, String endpointUrl, String location)
        {
            AWSCredentials credentials = new BasicIBMOAuthCredentials(apiKey, serviceInstanceId);
            ClientConfiguration clientConfig = new ClientConfiguration()
                    .withRequestTimeout(5000)
                    .withTcpKeepAlive(true);

            return AmazonS3ClientBuilder
                    .standard()
                    .withCredentials(new AWSStaticCredentialsProvider(credentials))
                    .withEndpointConfiguration(new EndpointConfiguration(endpointUrl, location))
                    .withPathStyleAccessEnabled(true)
                    .withClientConfiguration(clientConfig)
                    .build();
        }

根据documentation hereAmazonS3ClientBuilder可以选择使用withRegion来传递区域。

检查完整的COS Java SDK documentation here

已更新:

如果您在COS documentation中看到Java示例,则有一个存储类

storageClass是有效的预配置代码,与 端点值。然后将其用作S3 API LocationConstraint 变量。

要以编程方式创建具有其他存储类的存储桶,必须指定与使用的端点对应的LocationConstraint。

您可以在documentation here

中找到LocationConstraint的有效配置代码。

进一步阅读-API文档: