本文為您介紹使用Java SDK操作External Volume的說明。
專案依賴
使用SDK操作External Volume前需要添加如下依賴。
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>0.44.0-SNAPSHOT</version>
</dependency>
建立External Volume
Create
/** * 建立 External Volume * @param builder volume 的參數配置 * @throws OdpsException */ public void create(VolumeBuilder builder) throws OdpsException /** * 建立External Volume * * @param volumeName volume名稱 * @param comment * @param type 建立原有Volume傳入 {@link Volume}.Type.Old,建立新VolumeFS功能的volume傳入{@link Volume} * .Type.New。VolumeFS特性需要Project開啟該功能才可使用 * @throws OdpsException */ public void create(String volumeName, String comment, Volume.Type type) /** * 建立External Volume * * @param projectName 目標External Volume所在Project名稱 * @param volumeName 所要建立的volume名 * @param comment * @param type 建立原有Volume傳入 {@link Volume}.Type.Old,建立新VolumeFS功能的volume傳入{@link Volume} * .Type.New。VolumeFS特性需要Project開啟該功能才可使用 * @throws OdpsException */ public void create(String projectName, String volumeName, String comment, Volume.Type type) /** * 建立Volume * * @param projectName 目標External Volume所在Project名稱 * @param volumeName 所要建立的volume名 * @param comment * @param type 建立原有Volume傳入 {@link Volume}.Type.Old,建立新VolumeFS功能的volume傳入{@link Volume} * .Type.New。VolumeFS特性需要Project開啟該功能才可使用 * @param lifecycle 生命週期 * @throws OdpsException */ public void create(String projectName, String volumeName, String comment, Volume.Type type, Long lifecycle) throws OdpsException
Create樣本
/* 建立External Volume */ 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); }
擷取指定External Volume資訊
Get
/** * 擷取指定External Volume資訊 * * @param volumeName Volume名 * @return */ public Volume get(String volumeName) /** * 擷取指定External Volume資訊 * * @param projectName 所在Project名稱 * @param volumeName External Volume名 * @return */ public Volume get(String projectName, String volumeName)
Get樣本
/* 擷取External Volume資訊 */ public Volume getVolume() { String projectName = "test_project"; String extVolumeName = "test_ext_1"; Volume volume = odps.volumes().get(projectName, extVolumeName); return volume; }
擷取External Volume資訊迭代器
Iterator
/** * 擷取預設Project的所有Volume資訊迭代器 * * @return Volume迭代器 */ public Iterator<Volume> iterator() /** * 擷取Volume資訊迭代器 * * @param projectName 指定Project名稱 * @return Volume迭代器 */ public Iterator<Volume> iterator(final String projectName) /** * 擷取Volume資訊迭代器 * * @param filter 過濾條件 * @return Volume迭代器 */ public Iterator<Volume> iterator(final VolumeFilter filter) /** * 擷取Volume資訊迭代器 * * @param projectName 所在Project名稱 * @param filter 過濾條件 * @return Volume迭代器 */ public Iterator<Volume> iterator(final String projectName, final VolumeFilter filter)
Iterator樣本
/* 擷取volume迭代器 */ 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; }
刪除External Volume
Delete
/** * 刪除External Volume * * @param volumeName External Volume名 * @throws OdpsException */ public void delete(String volumeName) /** * 刪除External Volume * * @param projectName External Volume所在Project * @param volumeName External Volume名 * @throws OdpsException */ public void delete(String projectName, String volumeName)
Delete樣本
/* 刪除External Volume */ 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); } }