Este tópico descreve como usar o Java SDK para operar External Volumes.
Dependências do projeto
Antes de usar o SDK para operar External Volumes, adicione as seguintes dependências.
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>${Latest Version}</version>
</dependency>
Importante
O termo Latest Version no código acima é um espaço reservado. Substitua-o pela versão específica do SDK para compilar o projeto corretamente. Acesse o Repositório Central Maven para verificar as versões lançadas do odps-sdk-core. Recomendamos usar a versão mais recente, com formato X.X.X-public.
Criar um External Volume
-
Crie
/** * 创建 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 -
Exemplo de Crie
/* 创建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); }
Obter informações de um External Volume específico
-
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) -
Exemplo de Get
/* 获取External Volume信息 */ public Volume getVolume() { String projectName = "test_project"; String extVolumeName = "test_ext_1"; Volume volume = odps.volumes().get(projectName, extVolumeName); return volume; }
Obter iterador de informações de 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) -
Exemplo de 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; }
Excluir External Volume
-
Exclua
/** * 删除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) -
Exemplo de Exclua
/* 删除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); } }