---
title: "Java SDK"
slug: "archivestorage-javasdk"
updated: 2026-09-17T09:31:49Z
published: 2026-09-17T09:31:49Z
canonical: "guide.ncloud-docs.com/archivestorage-javasdk"
stale: true
---
> ## Documentation Index
> Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.
# Java SDK
Classic/VPC環境で利用できます。
openstack4jライブラリを利用し、NAVERクラウドプラットフォーム Archive Storageを使用する例です。このガイドでは、openstack4j 3.1.0バージョンを基準に説明します。関連文書は [openstack4j](https://www.openstack4j.com/learn)をご参照ください。
## インストール
ライブラリを直接ダウンロードしたり、Apache Mavenでインストールできます。
- **ライブラリのダウンロード** [openstack4j 3.1.0 バージョンダウンロード](https://search.maven.org/remotecontent?filepath=org/pacesys/openstack4j/3.1.0/openstack4j-3.1.0.jar)
- **Apache Mavenでインストール**
```
org.pacesys
openstack4j
3.1.0
```
## 例
例で使用する `user`、 `password`に適用する値は NAVERクラウドプラットフォームポータルで作成した API認証キー情報を使用します。API認証キー情報で Access Key IDを `user`の値に、Secret Keyを `password`の値に入力します。`domainid`、`projectid`は Archive Storage画面の **[API利用情報の確認]** ボタンをクリックし、表示されるポップアップウィンドウの情報を使用します。Domain IDを `domainid`の値に、Project IDの値を `projectid`の値に入力します。
参考
- API認証キー情報を確認する方法は [API認証キー作成および確認](/docs/ja/archivestorage-start#API%EC%9D%B8%EC%A6%9D%ED%82%A4%EC%83%9D%EC%84%B1%EB%B0%8F%ED%99%95%EC%9D%B8)をご参照ください。
- project_idと domain_id情報を確認する方法は [API利用情報の確認](/docs/ja/archivestorage-start#API%EC%9D%B4%EC%9A%A9%EC%A0%95%EB%B3%B4%ED%99%95%EC%9D%B8)をご確認ください。
### クライアント作成
認証情報にて作成されたトークンオブジェクトで OSクライアントを作成します。クライアントでトークンが無効または期限切れになると、自動的にトークンを更新します。マルチスレッド環境で、トークンオブジェクトを共有するため、不要な認証手順を削減できます。
参考
このガイドで説明するすべての例は、認証情報にて作成したトークンオブジェクトを利用します。
```
final String endpoint = "https://kr.archive.ncloudstorage.com:5000/v3";
final String user = "ACCESS_KEY_ID";
final String password = "SECRET_KEY";
final String domainId = "DOMAIN_ID";
final String projectId = "PROJECT_ID";
Token token = OSFactory.builderV3()
.endpoint(endpoint)
.credentials(user, password, Identifier.byId(domainId))
.scopeToProject(Identifier.byId(projectId), Identifier.byId(domainId))
.authenticate()
.token;
OSClientV3 client = OSFactory.clientFromToken(token);
```
```
// Spawn off a thread giving it the access
myThreadExecutor.submit(new MyRunnableOrCallable(token));
// Example of the Runnable or other object invoked in a new thread
public class MyRunnable implements Runnable {
private OSClientV3 client;
public MyRunnable(Access access) {
client = OSFactory.clientFromToken(token);
}
public void run() {
// can now use the client :)
}
}
```
### コンテナ(バケット)リストの照会
コンテナ(バケット)リストを照会する例は以下のとおりです。
```
OSClientV3 client = OSFactory.clientFromToken(token);
ObjectStorageContainerService containerService = client.objectStorage().containers();
List extends SwiftContainer> containers = containerService.list(ContainerListOptions.create().limit(100));
for (SwiftContainer container : containers) {
System.out.println(container);
}
```
### コンテナ(バケット)の作成
コンテナ(バケット)を作成する例は以下のとおりです。
```
OSClientV3 client = OSFactory.clientFromToken(token);
ObjectStorageContainerService containerService = client.objectStorage().containers();
String containerName = "sample-container";
// with metadata
// X-Container-Meta-Test-Meta-Key: test-meta-value
Map metadata = new HashMap<>();
metadata.put("test-meta-key", "test-meta-value");
ActionResponse response containerService.create(containerName, CreateUpdateContainerOptions.create().metadata(metadata));
System.out.println(response);
```
### コンテナ(バケット)の削除
コンテナ(バケット)を削除する例は以下のとおりです。
```
OSClientV3 client = OSFactory.clientFromToken(token);
ObjectStorageContainerService containerService = client.objectStorage().containers();
String containerName = "sample-container";
ActionResponse response = containerService.delete(containerName);
System.out.println(response);
```
### オブジェクトアップロード
オブジェクトをアップロードする例は以下のとおりです。
```
OSClientV3 client = OSFactory.clientFromToken(token);
ObjectStorageObjectService objectService = client.objectStorage().objects();
String containerName = "sample-container";
String objectName = "sample-object.txt";
String contentType = "text/plain";
File file = new File("/tmp/sample-object.txt");
// with metadata
// X-Object-Meta-Test-Meta-Key : test-meta-value
Map metadata = new HashMap<>();
metadata.put("test-meta-key", "test-meta-value");
String etag = objectService.put(containerName, objectName, Payloads.create(file),
ObjectPutOptions.create().contentType(contentType).metadata(metadata));
System.out.println(etag);
```
### ディレクトリオブジェクトの作成
ディレクトリオブジェクトを作成する例は以下のとおりです。
```
OSClientV3 client = OSFactory.clientFromToken(token);
ObjectStorageContainerService containerService = client.objectStorage().containers();
String containerName = "sample-container";
String directoryName = "sample-directory";
String etag = containerService.createPath(containerName, directoryName);
System.out.println(etag);
```
### オブジェクトリストの照会
オブジェクトリストを照会する例は以下のとおりです。
```
OSClientV3 client = OSFactory.clientFromToken(token);
ObjectStorageObjectService objectService = client.objectStorage().objects();
String containerName = "sample-container";
String directoryName = "sample-directory";
// simple
List extends SwiftObject> objects = objectService.list(containerName);
for (SwiftObject object : objects) {
System.out.println(object);
}
// list for directory
List extends SwiftObject> objectsForDirectory = objectService.list(containerName,
ObjectListOptions.create().path(directoryName));
for (SwiftObject object : objectsForDirectory) {
System.out.println(object);
}
```
### オブジェクトのダウンロード
オブジェクトをダウンロードする例は以下のとおりです。
```
OSClientV3 client = OSFactory.clientFromToken(token);
ObjectStorageObjectService objectService = client.objectStorage().objects();
String containerName = "sample-container";
String objectName = "sample-object.txt";
String downloadPath = "/tmp/sample-object.txt";
DLPayload payload = objectService.download(containerName, objectName);
File file = new File(downloadPath);
payload.writeToFile(file);
```
### オブジェクトの削除
オブジェクトを削除する例は以下のとおりです。
```
OSClientV3 client = OSFactory.clientFromToken(token);
ObjectStorageObjectService objectService = client.objectStorage().objects();
String containerName = "sample-container";
String objectName = "sample-object.txt";
ActionResponse response = objectService.delete(containerName, objectName);
System.out.println(response);
```
### 大容量ファイルのアップロード(SLO)
SLO方式を使用し大容量ファイルをアップロードする例は以下のとおりです。
```
OSClientV3 client = OSFactory.clientFromToken(getToken());
ObjectStorageObjectService objectService = client.objectStorage().objects();
String containerName = "sample-container";
String objectName = "sample-big-file.mp4";
String contentType = "video/mp4";
String segmentContainerName = "segment-container";
String segmentPrefix = "segments-for-sample-big-file.mp4/segment-";
List