本文为您介绍使用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); } }
文档内容是否对您有帮助?