Cette rubrique explique comment gérer des volumes externes à l'aide du SDK pour Java.
Dépendance du projet
Avant d'utiliser le SDK pour gérer des volumes externes, ajoutez la dépendance suivante.
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>${Latest Version}</version>
</dependency>
Important
Dans le code précédent, Latest Version est un espace réservé. Remplacez cet espace réservé par un numéro de version spécifique du SDK pour permettre la compilation du projet. Vous trouverez les versions publiées d'odps-sdk-core dans le référentiel central Maven. Nous vous recommandons d'utiliser la dernière version. Le numéro de version suit le format X.X.X-public.
Créer un volume externe
-
Création
/** * Creates an external volume. * @param builder The parameter configuration of the volume. * @throws OdpsException */ public void create(VolumeBuilder builder) throws OdpsException /** * Creates an external volume. * * @param volumeName The name of the volume. * @param comment * @param type To create a legacy volume, pass {@link Volume}.Type.Old. To create a volume for the new VolumeFS feature, pass {@link Volume} * .Type.New. The VolumeFS feature can be used only after it is enabled for the project. * @throws OdpsException */ public void create(String volumeName, String comment, Volume.Type type) /** * Creates an external volume. * * @param projectName The name of the project to which the destination external volume belongs. * @param volumeName The name of the volume to be created. * @param comment * @param type To create a legacy volume, pass {@link Volume}.Type.Old. To create a volume for the new VolumeFS feature, pass {@link Volume} * .Type.New. The VolumeFS feature can be used only after it is enabled for the project. * @throws OdpsException */ public void create(String projectName, String volumeName, String comment, Volume.Type type) /** * Creates a volume. * * @param projectName The name of the project to which the destination external volume belongs. * @param volumeName The name of the volume to be created. * @param comment * @param type To create a legacy volume, pass {@link Volume}.Type.Old. To create a volume for the new VolumeFS feature, pass {@link Volume} * .Type.New. The VolumeFS feature can be used only after it is enabled for the project. * @param lifecycle The lifecycle. * @throws OdpsException */ public void create(String projectName, String volumeName, String comment, Volume.Type type, Long lifecycle) throws OdpsException -
Exemple
/* Create an 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); }
Obtenir les informations relatives à un volume externe spécifié
-
Récupération
/** * Obtains the information about a specified external volume. * * @param volumeName The name of the volume. * @return */ public Volume get(String volumeName) /** * Obtains the information about a specified external volume. * * @param projectName The name of the project. * @param volumeName The name of the external volume. * @return */ public Volume get(String projectName, String volumeName) -
Exemple
/* Obtain the information about an external volume. */ public Volume getVolume() { String projectName = "test_project"; String extVolumeName = "test_ext_1"; Volume volume = odps.volumes().get(projectName, extVolumeName); return volume; }
Obtenir un itérateur de volumes externes
-
Itérateur
/** * Obtains an iterator for all volumes in the default project. * * @return A volume iterator. */ public Iterator<Volume> iterator() /** * Obtains a volume iterator. * * @param projectName The name of the project. * @return A volume iterator. */ public Iterator<Volume> iterator(final String projectName) /** * Obtains a volume iterator. * * @param filter The filter condition. * @return A volume iterator. */ public Iterator<Volume> iterator(final VolumeFilter filter) /** * Obtains a volume iterator. * * @param projectName The name of the project. * @param filter The filter condition. * @return A volume iterator. */ public Iterator<Volume> iterator(final String projectName, final VolumeFilter filter) -
Exemple
/* Obtain a volume iterator. */ 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; }
Supprimer un volume externe
-
Suppression
/** * Deletes an external volume. * * @param volumeName The name of the external volume. * @throws OdpsException */ public void delete(String volumeName) /** * Deletes an external volume. * * @param projectName The project to which the external volume belongs. * @param volumeName The name of the external volume. * @throws OdpsException */ public void delete(String projectName, String volumeName) -
Exemple
/* Delete an 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); } }