Config

Use AWS S3 Java SDK Setting

OVH 文件上顯示說可以透過AWS S3 API 去使用,這樣就是可以直接使用AWS S3 Java SDK 去做認證並且對容器進行操作,就此開始了奇幻冒險.....

如何取得Key

SDK V1

@Configuration
public class AWSS3Config {

	@Value("${custom.aws.accessKey}")
	private String accessKey;

	@Value("${custom.aws.secretKey}")
	private String secretKey;

	@Value("${custom.aws.area}")
	private String area;
	
	@Bean
	public AmazonS3 createAWSS3Client() {
		AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);

		//set-up the client
		// LocationCode 在建立 object container 時選擇區域時那邊的清單. 用縮寫(Ps.大小寫似乎都可以使用) Ex.Beauharnois(BHS) -> BHS
		AmazonS3 s3client = AmazonS3ClientBuilder
				.standard()
				.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("https://s3.{LocationCode}.cloud.ovh.net", "{LocationCode}"))
				.withCredentials(new AWSStaticCredentialsProvider(credentials))
				.build();
		return s3client;
	}
}

SDK V2

@Configuration
public class AWSS3Config {
	@Value("${custom.aws.accessKey}")
	private String accessKey;
	@Value("${custom.aws.secretKey}")
	private String secretKey;
	@Bean
	public S3Client createAWSS3Client() {
		AwsBasicCredentials awsCreds = AwsBasicCredentials.create(accessKey, secretKey);
		return S3Client.builder()
				.endpointOverride(new URI("https://s3.{LocationCode}.cloud.ovh.net"))
				.region(Region.of("{LocationCode}"))
				.credentialsProvider(StaticCredentialsProvider.create(awsCreds)).build();
	}
}

Last updated