- Object Storeとは、AWS、GCP、Azureいずれかの、クラウドサービスを利用するストレージサービスを指す。
例:AWSの場合は、S3を使用。 - Object Storeインスタンスを有効化し、BTP上のアプリケーションにバインドすることで、BTPのバインドしたアプリケーションから、Object Storeを利用するための環境※が構築される。
※AWSの場合、具体的には、以下が実行される。
- Object Storeインスタンスの有効化によって、行われること。
- S3のバケット作成(バケット名は自動生成)
- バケットにアクセス可能なIAMユーザの作成(IAMユーザ名は自動生成)
※該当IAMユーザを使用して、AWSコンソールログオンはできない。 - IAMユーザのクレデンシャル発行
- Object Storeインスタンスのアプリケーションへのバインドによって、行われること。
上記1.~3.の情報を、Object Store(S3)を使用するBTP上のスクラッチアプリケーションの「環境変数」の値として設定する。なお、設定した「環境変数」の値は、バインドされたアプリケーション上のソースから読み込むことが可能。
※以下、環境変数の値をJAVAアプリケーションから読み込む場合の例:
@Value("${vcap.services.objectstore.credentials.access_key_id}")
String accessKeyId;
@Value("${vcap.services.objectstore.credentials.secret_access_key}")
String secretAccessKey;
@Value("${vcap.services.objectstore.credentials.bucket}")
String bucketName;
@Value("${vcap.services.objectstore.credentials.host}")
String endPoint;
@Value("${vcap.services.objectstore.credentials.region}")
String bucketRegion;
ファイルのアップロード操作は、AWS SDKや、AWS CLIを使用する。JAVAの場合の使用例は以下。
S3接続:
//Using setEndPoint method
AWSCredentials credentials = new BasicAWSCredentials(accessKeyId, secretAccessKey);
AmazonS3 s3client = null;
s3client = new AmazonS3Client(credentials);
s3client.setEndPoint(endPoint);
//Using region method
AWSCredentials credentials = new BasicAWSCredentials(accessKeyId, secretAccessKey);
AmazonS3 s3client = null;
s3client = new AmazonS3Client(credentials);
s3client.setRegion(bucketRegion);
ファイルアップロード:
s3client.putObject(new PutObjectRequest(bucketName, objectName, file));