我们如何使用 OVH s3 api 访问 java 中的 ovh 云存储

How can we use OVH s3 api to access ovh cloud storage in java

我想使用 ovh s3 api 使用密钥库、密钥、消费者密钥和区域访问 java 中的 ovh 云存储。 所以使用它我可以在 ovh 云存储上上传文件。

在使用 Java 连接到您的后端之前,我建议您验证您与 CLI 客户端的连接,如下所示

  • 获取您的令牌,您需要按照本文档中的说明生成它们:https://docs.ovh.com/gb/en/storage/getting_started_with_the_swift_S3_API/

    重要的步骤是:

    1. 获取您的 openrc 文件
    user@host:~$ source <user_name>-openrc.sh
    
    1. 创建您的 ec2 凭据
      作为此调用的响应,您将获得一个块
    user@host:~$ openstack ec2 credentials create
    
    1. 编辑您的 aws 凭据
      请务必提供区域和正确的 OVHcloud 存储链接
    user@host:~$ cat ~/.aws/credentials
    
    [default]
    aws_access_key_id = <access_key>
    aws_secret_access_key = <secret_key>
    
    user@host:~$ cat ~/.aws/config
    
    [plugins]
    endpoint = awscli_plugin_endpoint
    
    [profile default]
    region = <region>
    s3 =
      endpoint_url = https://s3.<region>.cloud.ovh.net
      signature_version = s3v4
    s3api =
      endpoint_url = https://s3.<region>.cloud.ovh.net
    
  • 通过列出您的 OVHcloud 存储对象来验证您的存储桶的连接性。

    aws --profile default s3 ls
    

然后您可以从 java 代码连接 您可以使用此 post 答案中的代码示例 Setting AWS S3 Region

AWSCredentials cred = new BasicAWSCredentials(<accessKey>,<secretKey>);
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(cred))
.withClientConfiguration(<your configuration>)
.withRegion(Region.getRegion(Regions.AP_SOUTH_1));

重要的是提供endpoint/region因为sdk默认为US_WEST区域