このトピックでは、SDK for Java を使用して外部ボリュームを管理する方法について説明します。
プロジェクト依存関係
SDK を使用して外部ボリュームを管理する前に、次の依存関係を追加する必要があります。
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>${Latest Version}</version>
</dependency>重要
上記のコードでは、Latest Version はプレースホルダーです。プロジェクトをコンパイルするには、プレースホルダーを特定の SDK バージョン番号に置き換える必要があります。odps-sdk-core のリリースバージョンは、Maven Central Repository で見つけることができます。最新バージョンを使用することをお勧めします。バージョン番号は X.X.X-public フォーマットです。
外部ボリュームを作成する
作成
/** * 外部ボリュームを作成します。 * @param builder ボリュームのパラメーター構成。 * @throws OdpsException */ public void create(VolumeBuilder builder) throws OdpsException /** * 外部ボリュームを作成します。 * * @param volumeName ボリュームの名前。 * @param comment * @param type レガシーボリュームを作成するには、{@link Volume}.Type.Old を渡します。新しい VolumeFS 機能用のボリュームを作成するには、{@link Volume} * .Type.New を渡します。VolumeFS 機能は、プロジェクトで有効にされた後にのみ使用できます。 * @throws OdpsException */ public void create(String volumeName, String comment, Volume.Type type) /** * 外部ボリュームを作成します。 * * @param projectName 宛先外部ボリュームが属するプロジェクトの名前。 * @param volumeName 作成するボリュームの名前。 * @param comment * @param type レガシーボリュームを作成するには、{@link Volume}.Type.Old を渡します。新しい VolumeFS 機能用のボリュームを作成するには、{@link Volume} * .Type.New を渡します。VolumeFS 機能は、プロジェクトで有効にされた後にのみ使用できます。 * @throws OdpsException */ public void create(String projectName, String volumeName, String comment, Volume.Type type) /** * ボリュームを作成します。 * * @param projectName 宛先外部ボリュームが属するプロジェクトの名前。 * @param volumeName 作成するボリュームの名前。 * @param comment * @param type レガシーボリュームを作成するには、{@link Volume}.Type.Old を渡します。新しい VolumeFS 機能用のボリュームを作成するには、{@link Volume} * .Type.New を渡します。VolumeFS 機能は、プロジェクトで有効にされた後にのみ使用できます。 * @param lifecycle ライフサイクル。 * @throws OdpsException */ public void create(String projectName, String volumeName, String comment, Volume.Type type, Long lifecycle) throws OdpsException例
/* 外部ボリュームを作成します。 */ public void createExternalVolume() throws Exception { String projectName = "test_project"; String extVolumeName = "test_ext_1"; String externalLocation = "oss://..."; Long lifecycle; String comment; String roleArn; Volumes.VolumeBuilder builder = new Volumes.VolumeBuilder(); builder.project(projectName).volumeName(extVolumeName).type(Volume.Type.EXTERNAL).extLocation(externalLocation); if (lifecycle != null) { builder.lifecycle(lifecycle); } if (comment != null) { builder.comment(comment); } if (roleArn != null) { builder.addProperty(Volumes.EXTERNAL_VOLUME_ROLEARN_KEY, roleArn); } getCurrentOdps().volumes().create(builder); }
指定された外部ボリュームに関する情報を取得する
取得
/** * 指定された外部ボリュームに関する情報を取得します。 * * @param volumeName ボリュームの名前。 * @return */ public Volume get(String volumeName) /** * 指定された外部ボリュームに関する情報を取得します。 * * @param projectName プロジェクトの名前。 * @param volumeName 外部ボリュームの名前。 * @return */ public Volume get(String projectName, String volumeName)例
/* 外部ボリュームに関する情報を取得します。 */ public Volume getVolume() { String projectName = "test_project"; String extVolumeName = "test_ext_1"; Volume volume = odps.volumes().get(projectName, extVolumeName); return volume; }
外部ボリュームイテレーターの取得
イテレータ
/** * デフォルトプロジェクト内のすべてのボリュームのイテレーターを取得します。 * * @return ボリュームイテレーター。 */ public Iterator<Volume> iterator() /** * ボリュームイテレーターを取得します。 * * @param projectName プロジェクトの名前。 * @return ボリュームイテレーター。 */ public Iterator<Volume> iterator(final String projectName) /** * ボリュームイテレーターを取得します。 * * @param filter フィルター条件。 * @return ボリュームイテレーター。 */ public Iterator<Volume> iterator(final VolumeFilter filter) /** * ボリュームイテレーターを取得します。 * * @param projectName プロジェクトの名前。 * @param filter フィルター条件。 * @return ボリュームイテレーター。 */ public Iterator<Volume> iterator(final String projectName, final VolumeFilter filter)例
/* ボリュームイテレーターを取得します。 */ public Iterator<Volume> getVolumeIterator() { String projectName = "test_project"; String extVolumeName = "test_ext_1"; VolumeFilter volumeFilter = new VolumeFilter(); volumeFilter.setName(extVolumeName); Iterator<Volume> iterator = odps.volumes().iterator(projectName, volumeFilter); return iterator; }
外部ボリュームの削除
削除
/** * 外部ボリュームを削除します。 * * @param volumeName 外部ボリュームの名前。 * @throws OdpsException */ public void delete(String volumeName) /** * 外部ボリュームを削除します。 * * @param projectName 外部ボリュームが属するプロジェクト。 * @param volumeName 外部ボリュームの名前。 * @throws OdpsException */ public void delete(String projectName, String volumeName)削除の例
/* 外部ボリュームを削除します。 */ public void deleteVolume() { String projectName = "test_project"; String extVolumeName = "test_ext_1"; try { odps.volumes().delete(projectName, extVolumeName); } catch (OdpsException e) { throw new RuntimeException(e); } }