全部产品
Search
文档中心

MaxCompute:Kelola volume eksternal menggunakan SDK untuk Java

更新时间:Nov 10, 2025

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 OdpsException
    
    
    
  • Contoh

    /*
     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);
        }
    }