Topik ini menjelaskan cara mengelola volume eksternal menggunakan SDK untuk Java.
Ketergantungan proyek
Sebelum menggunakan SDK untuk mengelola volume eksternal, Anda harus menambahkan dependensi berikut.
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>${Latest Version}</version>
</dependency>Penting
Pada kode di atas, Latest Version merupakan placeholder. Gantilah placeholder tersebut dengan nomor versi SDK tertentu agar proyek dapat dikompilasi. Versi rilis odps-sdk-core tersedia di Maven Central Repository. Disarankan untuk menggunakan versi terbaru. Nomor versi mengikuti format X.X.X-public.
Buat volume eksternal
Buat
/** * Membuat volume eksternal. * @param builder Konfigurasi parameter volume. * @throws OdpsException */ public void create(VolumeBuilder builder) throws OdpsException /** * Membuat volume eksternal. * * @param volumeName Nama volume. * @param comment * @param type Untuk membuat volume lama, gunakan {@link Volume}.Type.Old. Untuk membuat volume untuk fitur VolumeFS baru, gunakan {@link Volume} * .Type.New. Fitur VolumeFS hanya dapat digunakan setelah diaktifkan untuk proyek tersebut. * @throws OdpsException */ public void create(String volumeName, String comment, Volume.Type type) /** * Membuat volume eksternal. * * @param projectName Nama proyek tempat volume eksternal tujuan berada. * @param volumeName Nama volume yang akan dibuat. * @param comment * @param type Untuk membuat volume lama, gunakan {@link Volume}.Type.Old. Untuk membuat volume untuk fitur VolumeFS baru, gunakan {@link Volume} * .Type.New. Fitur VolumeFS hanya dapat digunakan setelah diaktifkan untuk proyek tersebut. * @throws OdpsException */ public void create(String projectName, String volumeName, String comment, Volume.Type type) /** * Membuat volume. * * @param projectName Nama proyek tempat volume eksternal tujuan berada. * @param volumeName Nama volume yang akan dibuat. * @param comment * @param type Untuk membuat volume lama, gunakan {@link Volume}.Type.Old. Untuk membuat volume untuk fitur VolumeFS baru, gunakan {@link Volume} * .Type.New. Fitur VolumeFS hanya dapat digunakan setelah diaktifkan untuk proyek tersebut. * @param lifecycle Siklus hidup. * @throws OdpsException */ public void create(String projectName, String volumeName, String comment, Volume.Type type, Long lifecycle) throws OdpsExceptionContoh
/* Membuat volume eksternal. */ 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); }
Peroleh informasi tentang volume eksternal tertentu
Ambil
/** * Mendapatkan informasi tentang volume eksternal tertentu. * * @param volumeName Nama volume. * @return */ public Volume get(String volumeName) /** * Mendapatkan informasi tentang volume eksternal tertentu. * * @param projectName Nama proyek. * @param volumeName Nama volume eksternal. * @return */ public Volume get(String projectName, String volumeName)Contoh
/* Mendapatkan informasi tentang volume eksternal. */ public Volume getVolume() { String projectName = "test_project"; String extVolumeName = "test_ext_1"; Volume volume = odps.volumes().get(projectName, extVolumeName); return volume; }
Obtain an external volume iterator
Iterator
/** * Mendapatkan iterator untuk semua volume di proyek default. * * @return Iterator volume. */ public Iterator<Volume> iterator() /** * Mendapatkan iterator volume. * * @param projectName Nama proyek. * @return Iterator volume. */ public Iterator<Volume> iterator(final String projectName) /** * Mendapatkan iterator volume. * * @param filter Kondisi filter. * @return Iterator volume. */ public Iterator<Volume> iterator(final VolumeFilter filter) /** * Mendapatkan iterator volume. * * @param projectName Nama proyek. * @param filter Kondisi filter. * @return Iterator volume. */ public Iterator<Volume> iterator(final String projectName, final VolumeFilter filter)Contoh
/* Mendapatkan 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; }
Delete an external volume
Hapus
/** * Menghapus volume eksternal. * * @param volumeName Nama volume eksternal. * @throws OdpsException */ public void delete(String volumeName) /** * Menghapus volume eksternal. * * @param projectName Proyek tempat volume eksternal berada. * @param volumeName Nama volume eksternal. * @throws OdpsException */ public void delete(String projectName, String volumeName)Hapus contoh tersebut.
/* Menghapus volume eksternal. */ 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); } }