このトピックでは、OSS SDK for Javaを使用して、バケットの作成、オブジェクトのアップロード、オブジェクトのダウンロードなどのルーチン操作を実行する方法について説明します。
前提条件
OSS SDK for Javaがインストールされています。 詳細については、「インストール」をご参照ください。ビデオチュートリアル
次のビデオは、OSS SDK for Javaの使用方法を示しています。
サンプルプロジェクト
OSS SDK for Javaは、MavenおよびAntのサンプルプロジェクトを提供します。 サンプルプロジェクトをローカルデバイスでコンパイルして実行したり、サンプルプロジェクトに基づいて独自のアプリケーションを開発することが可能です。 プロジェクトをコンパイルして実行する方法の詳細については、プロジェクトディレクトリのREADME.mdを参照してください。
- Mavenのサンプルプロジェクト: aliyun-oss-java-sdk-demo-mvn.zip
- Antのサンプルプロジェクト: aliyun-oss-java-sdk-demo-ant.zip
バケットの作成
バケットは OSS のグローバルネームスペースです。 バケットは、OSS に保存されているオブジェクトのコンテナーです。 次のコードは、バケットの作成方法の例を示しています。
// この例では、中国 (杭州) リージョンのエンドポイントを使用します。 実際のエンドポイントを指定します。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Alibaba CloudアカウントのAccessKeyペアを使用してOSSにログインすると、アカウントにはすべてのAPI操作に対する権限があるため、セキュリティ上のリスクが生じる可能性があります。 RAMユーザーの資格情報を使用して、API操作を呼び出したり、定期的な操作とメンテナンスを実行したりすることを推奨します。 RAMユーザーを作成するには、RAMコンソールにログインします。
文字列accessKeyId = "<yourAccessKeyId>";
文字列accessKeySecret = "<yourAccessKeySecret>";
文字列bucketName = "<yourBucketName>";
// OSSClientインスタンスを作成します。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// バケットを作成します。
ossClient.createBucket(bucketName);
// OSSClientインスタンスをシャットダウンします。
ossClient.shutdown();
バケットの命名規則の詳細については、「用語」の「命名規則」セクションを参照してください。 バケットの作成方法の詳細については、「バケットの作成」をご参照ください。
エンドポイントの詳細については、「リージョンおよびエンドポイント」をご参照ください。
オブジェクトのアップロード
次のコードは、オブジェクトをOSSにアップロードする方法の例を示しています。
// この例では、中国 (杭州) リージョンのエンドポイントを使用します。 実際のエンドポイントを指定します。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Alibaba CloudアカウントのAccessKeyペアを使用してOSSにログインすると、アカウントにはすべてのAPI操作に対する権限があるため、セキュリティ上のリスクが生じる可能性があります。 RAMユーザーの資格情報を使用して、API操作を呼び出したり、定期的な操作とメンテナンスを実行したりすることを推奨します。 RAMユーザーを作成するには、RAMコンソールにログインします。
文字列accessKeyId = "<yourAccessKeyId>";
文字列accessKeySecret = "<yourAccessKeySecret>";
文字列bucketName = "<yourBucketName>";
// <yourObjectName> は、OSSにアップロードするオブジェクトの完全なパスを示し、オブジェクトのファイル拡張子を含める必要があります。 例: abc/efg/123.jpg.
文字列objectName = "<yourObjectName>";
// OSSClientインスタンスを作成します。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// オブジェクトを指定したバケットにアップロードし、指定したオブジェクト名で保存します。
String content = "Hello OSS";
ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(content.getBytes()));
// OSSClientインスタンスをシャットダウンします。
ossClient.shutdown();
オブジェクトのアップロード方法の詳細については、「オブジェクトのアップロード」をご参照ください。
オブジェクトのダウンロード
次のコードは、オブジェクトをダウンロードする方法の例を示しています。
// この例では、中国 (杭州) リージョンのエンドポイントを使用します。 実際のエンドポイントを指定します。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Alibaba CloudアカウントのAccessKeyペアを使用してOSSにログインすると、アカウントにはすべてのAPI操作に対する権限があるため、セキュリティ上のリスクが生じる可能性があります。 RAMユーザーの資格情報を使用して、API操作を呼び出したり、定期的な操作とメンテナンスを実行したりすることを推奨します。 RAMユーザーを作成するには、RAMコンソールにログインします。
文字列accessKeyId = "<yourAccessKeyId>";
文字列accessKeySecret = "<yourAccessKeySecret>";
文字列bucketName = "<yourBucketName>";
// <yourObjectName> は、OSSからダウンロードするオブジェクトの完全なパスを示します。 パスには、オブジェクトのファイル拡張子を含める必要があります。 たとえば、<yourObjectName> をabc/efg/123.jpg. に設定できます。
文字列objectName = "<yourObjectName>";
// OSSClientインスタンスを作成します。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// ossClient.getObjectメソッドを使用して、OSSObjectインスタンスを取得します。 OSSObjectインスタンスには、オブジェクトのコンテンツとメタデータが含まれます。
OSSObject ossObject = ossClient.getObject(bucketName, objectName);
// ossObject.getObjectContentメソッドを使用して、オブジェクトの入力ストリームを取得します。 入力ストリームを読み取り、オブジェクトのコンテンツを取得します。
InputStream content = ossObject.getObjectContent();
if (content != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(content));
一方、(TRUE){
String line = reader.readLine();
if (line == null) break;
System.out.println("\n" + line);
}
// 接続リークを防ぐために、使用するたびに接続を閉じる必要があります。 そうしないと、要求が接続を確立できず、プログラムが正しく実行できない場合があります。
content.close();
}
// OSSClientをシャットダウンします。
ossClient.shutdown();
オブジェクトのダウンロード方法の詳細については、「オブジェクトのダウンロード」をご参照ください。
オブジェクトの一覧表示
次のコードでは、指定したバケット内のオブジェクトを一覧表示する方法の例を示します。 デフォルトでは、最大100個のオブジェクトが一覧表示されます。
// この例では、中国 (杭州) リージョンのエンドポイントを使用します。 実際のエンドポイントを指定します。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Alibaba CloudアカウントのAccessKeyペアを使用してOSSにログインすると、アカウントにはすべてのAPI操作に対する権限があるため、セキュリティ上のリスクが生じる可能性があります。 RAMユーザーの資格情報を使用して、API操作を呼び出したり、定期的な操作とメンテナンスを実行したりすることを推奨します。 RAMユーザーを作成するには、RAMコンソールにログインします。
文字列accessKeyId = "<yourAccessKeyId>";
文字列accessKeySecret = "<yourAccessKeySecret>";
文字列bucketName = "<yourBucketName>";
// OssClientインスタンスを作成します。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// ossClient.listObjectsメソッドを使用して、ObjectListingインスタンスを取得します。 ObjectListingインスタンスには、ListObjectリクエストに対する応答が含まれます。
ObjectListing objectListing = ossClient.listObjects(bucketName);
// objectListing.getObjectSummariesメソッドを使用して、すべてのオブジェクトの説明を取得します。
for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
System.out.println(" - " + objectSummary.getKey() + " " +
"(size = " + objectSummary.getSize() + ")");
}
// OSSClientインスタンスをシャットダウンします。
ossClient.shutdown();
オブジェクトを一覧表示する方法の詳細については、「オブジェクトの一覧表示」をご参照ください。
オブジェクトの削除
オブジェクトの削除に使用する完全なコードについては、『GitHub』をご参照ください。
次のコードは、オブジェクトを削除する方法の例を示しています。
// この例では、中国 (杭州) リージョンのエンドポイントを使用します。 実際のエンドポイントを指定します。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Alibaba CloudアカウントのAccessKeyペアを使用してOSSにログインすると、アカウントにはすべてのAPI操作に対する権限があるため、セキュリティ上のリスクが生じる可能性があります。 RAMユーザーの資格情報を使用して、API操作を呼び出したり、定期的な操作とメンテナンスを実行したりすることを推奨します。 RAMユーザーを作成するには、RAMコンソールにログインします。
文字列accessKeyId = "<yourAccessKeyId>";
文字列accessKeySecret = "<yourAccessKeySecret>";
文字列bucketName = "<yourBucketName>";
// <yourObjectName> は、削除するオブジェクトの完全なパスを示し、オブジェクトのファイル拡張子を含める必要があります。 例: abc/efg/123.jpg.
文字列objectName = "<yourObjectName>";
// OSSClientインスタンスを作成します。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// オブジェクトを削除します。
ossClient.de leteObject(bucketName, objectName);
// OSSClientインスタンスをシャットダウンします。
ossClient.shutdown();
オブジェクトを削除する方法の詳細については、「オブジェクトの削除」をご参照ください。