全部产品
Search
文档中心

ApsaraVideo VOD:Hapus file media

更新时间:Feb 11, 2026

ApsaraVideo VOD memungkinkan Anda menghapus file media untuk mengelola biaya penyimpanan atau menghapus konten yang telah kedaluwarsa atau tidak sesuai. Topik ini menjelaskan berbagai jenis operasi penghapusan beserta dampaknya, serta memberikan panduan tentang cara menghapus file media secara aman dan efisien menggunakan Konsol, API, atau software development kit (SDK).

Cara kerja

Sebelum menghapus file, pahami terlebih dahulu mekanisme operasi tersebut dan risiko potensialnya guna mencegah kehilangan data yang tidak dapat dikembalikan.

Peringatan

Semua operasi penghapusan bersifat fisik. File dan informasi aset medianya terkait akan dihapus secara permanen dan tidak dapat dipulihkan. Untuk membuat cadangan file Anda, lihat Migrasi sumber daya ApsaraVideo VOD.

Jenis penghapusan

Konten yang dihapus

Dampak pada pemutaran

Audio atau video lengkap

File sumber, semua aliran yang telah dikodekan ulang, gambar mini, dan sprite.

Video atau audio tidak dapat diputar.

Aliran audio dan video

File hasil transkoding dengan definisi tertentu.

Definisi tertentu tidak dapat diputar. Hal ini dapat menyebabkan error pada pemutar.

File sumber

File asli yang diunggah.

Versi kualitas asli tidak dapat diputar.

Gambar

File gambar.

Video tidak dapat ditampilkan sebagai gambar mini.

Catatan
  • Setelah Anda menghapus file media dari ApsaraVideo VOD, cache pada CDN points of presence (POPs) tidak secara otomatis di-purge. Anda dapat menggunakan fitur purge di Konsol ApsaraVideo VOD untuk menghapus data lama dari CDN POPs. Untuk informasi selengkapnya, lihat Refresh dan pra-ambil.

  • Secara default, Anda tidak dapat menghapus file sumber audio atau video yang diunggah untuk distribusi tanpa transkoding karena file tersebut digunakan untuk pemutaran kualitas asli. Untuk menghapus file tersebut, panggil operasi DeleteMezzanines dan tentukan parameter Force.

Skenario 1: Hapus file menggunakan Konsol

Konsol menyediakan antarmuka yang intuitif dan cocok untuk menghapus jumlah file yang terbatas.

  1. Masuk ke Konsol ApsaraVideo VOD.

  2. Pada panel navigasi di sebelah kiri, pilih Media Assets, lalu klik Audio/Video, Image, atau Short Video Material.

  3. Pada halaman manajemen, temukan file yang ingin Anda hapus, lalu klik Delete di kolom Actions.

    删除

Skenario 2: Hapus file menggunakan API atau SDK

Menghapus file media melalui API atau SDK memberikan fleksibilitas dan kemampuan otomatisasi yang lebih tinggi, sehingga lebih direkomendasikan untuk mengelola banyak aset media di lingkungan produksi.

Catatan
  • Pastikan Anda telah menginstal SDK untuk bahasa pemrograman yang diinginkan dan menginisialisasi client. Untuk informasi selengkapnya, lihat Server-side SDKs.

  • Saat memanggil operasi API untuk menghapus file media, perhatikan batas permintaan per detik (QPS). Jika batas QPS terlampaui, panggilan API akan gagal. Untuk informasi selengkapnya, lihat Throttling.

Hapus satu atau beberapa video lengkap

Ini adalah skenario paling umum. Panggil operasi DeleteVideo untuk menghapus semua sumber daya yang terkait dengan video, seperti file sumber, aliran hasil transkoding, dan snapshot. Kode berikut memberikan contohnya.

pythonfrom aliyunsdkvod.request.v20170321 import DeleteVideoRequest
from aliyunsdkcore.client import AcsClient
import json

def delete_video_safely(video_ids: str, access_key: str, secret_key: str, region='cn-shanghai'):
    """
    Hapus satu atau beberapa video secara aman.
    
    Args:
        video_ids: ID video. Pisahkan beberapa ID dengan koma.
        access_key: ID AccessKey.
        secret_key: Rahasia AccessKey.
        region: Wilayah.
    
    Returns:
        dict: Kamus yang menunjukkan apakah panggilan berhasil dan mencakup pesan error apa pun.
    """
    try:
        # 1. Inisialisasi client.
        client = AcsClient(access_key, secret_key, region)
        
        # 2. Buat permintaan penghapusan.
        request = DeleteVideoRequest.DeleteVideoRequest()
        request.set_VideoIds(video_ids)
        
        # 3. Jalankan penghapusan.
        response = client.do_action_with_exception(request)
        result = json.loads(response)
        
        print(f"Permintaan penghapusan untuk video {video_ids} telah dikirim. RequestID: {result.get('RequestId')}")
        return {"success": True, "data": result}
        
    except Exception as e:
        error_msg = str(e)
        print(f"Penghapusan gagal: {error_msg}")
        
        # Penanganan error umum
        if "InvalidVideo.NotFound" in error_msg:
            return {"success": False, "error": "Video tidak ditemukan atau telah dihapus."}
        elif "Forbidden.IllegalStatus" in error_msg:
            return {"success": False, "error": "Video tidak dapat dihapus karena statusnya saat ini. Mungkin sedang dalam proses transkoding."}
        elif "Throttling" in error_msg:
            return {"success": False, "error": "Permintaan terlalu sering. Silakan coba lagi nanti."}
        else:
            return {"success": False, "error": f"Error tidak dikenal: {error_msg}"}

# Contoh penggunaan
# result = delete_video_safely(
#     video_ids="your-video-id-1,your-video-id-2",
#     access_key="your-access-key", 
#     secret_key="your-secret-key"
# )

Hapus aliran video dengan definisi tertentu

Panggil operasi DeleteStream. Fitur ini berguna ketika Anda hanya perlu menghapus definisi tertentu namun tetap ingin mempertahankan definisi lainnya. Kode berikut memberikan contohnya.

pythonfrom aliyunsdkvod.request.v20170321 import DeleteStreamRequest
# ... (Gunakan kembali inisialisasi AcsClient dari contoh sebelumnya)

def delete_specific_stream(video_id: str, job_ids: str, access_key: str, secret_key: str):
    """
    Hapus aliran hasil transkoding dengan definisi tertentu.
    
    Args:
        video_id: ID video.
        job_ids: Daftar ID pekerjaan transkoding. Pisahkan beberapa ID dengan koma.
    """
    try:
        client = AcsClient(access_key, secret_key, 'cn-shanghai')
        request = DeleteStreamRequest.DeleteStreamRequest()
        request.set_VideoId(video_id)
        request.set_JobIds(job_ids)
        
        response = client.do_action_with_exception(request)
        print(f"Aliran definisi tertentu untuk video {video_id} telah dihapus.")
        return json.loads(response)
        
    except Exception as e:
        print(f"Gagal menghapus aliran: {e}")
        raise

# Contoh: Misalkan Anda telah memperoleh JobId 'job-id-for-4k' untuk definisi '4K' dengan memanggil GetPlayInfo.
# delete_specific_stream(
#     video_id="your-video-id",
#     job_ids="job-id-for-4k",
#     access_key="your-access-key",
#     secret_key="your-secret-key"
# )

Hapus paksa file sumber

Panggil operasi DeleteMezzanines. Operasi ini hanya menghapus file asli yang diunggah, tetapi mempertahankan file aliran hasil transkoding. Kode berikut memberikan contohnya.

Penting

Menghapus file sumber menyebabkan pemutaran kualitas asli tidak tersedia. Setelah dihapus, Anda tidak dapat melakukan transkoding ulang pada video tersebut. Gunakan operasi ini hanya setelah memastikan bahwa file sumber tidak lagi diperlukan.

pythonfrom aliyunsdkvod.request.v20170321 import DeleteMezzaninesRequest
# ... (Gunakan kembali inisialisasi AcsClient dari contoh sebelumnya)

def force_delete_source_file(video_ids: str, access_key: str, secret_key: str):
    """
    Hapus paksa file sumber.
    
    Args:
        video_ids: Daftar ID video. Pisahkan beberapa ID dengan koma.
    """
    try:
        client = AcsClient(access_key, secret_key, 'cn-shanghai')
        request = DeleteMezzaninesRequest.DeleteMezzaninesRequest()
        request.set_VideoIds(video_ids)
        request.set_Force(True)  # Bendera hapus paksa
        
        response = client.do_action_with_exception(request)
        print("File sumber berhasil dihapus secara paksa.")
        print("Segera purge cache CDN untuk mencegah error 404 saat pemutaran kualitas asli.")
        return json.loads(response)
        
    except Exception as e:
        print(f"Penghapusan paksa gagal: {e}")
        raise

# force_delete_source_file(
#     video_ids="your-video-id",
#     access_key="your-access-key",
#     secret_key="your-secret-key"
# )

Hapus file gambar

Untuk menghapus gambar yang diunggah atau tangkapan video, panggil operasi DeleteImage.