Anda dapat menggunakan beberapa metode untuk menghapus objek OSS atau file HDFS yang tidak diperlukan dari sebuah bucket. Objek yang dihapus tidak dapat dipulihkan. Lanjutkan dengan hati-hati.
Objek yang dihapus tidak dapat dipulihkan. Gunakan operasi hapus dengan hati-hati.
Untuk menjaga stabilitas OSS-HDFS dan mencegah hilangnya data, jangan hapus objek dari direktori
.dlsdata/.
Hapus objek tunggal
Konsol OSS
Masuk ke Konsol OSS.
Di panel navigasi sisi kiri, klik Buckets. Pada halaman Buckets, temukan dan klik bucket yang diinginkan.
Di pohon navigasi sisi kiri, pilih Object Management > Objects.
Hapus objek OSS atau file HDFS.
Hapus objek OSS
Pada tab Objects, pilih objek dan klik Permanently Delete di bawah daftar objek.
Di kotak dialog yang muncul, klik OK.
Hapus file HDFS
Pada tab HDFS, klik Permanently Delete di kolom Tindakan pada file yang ingin Anda hapus.
CatatanPenghapusan massal tidak didukung untuk file pada tab HDFS. Anda harus menghapus file dari tab HDFS satu per satu.
Di kotak dialog yang muncul, klik OK.
ossutil
Sebelum menggunakan ossutil, instal terlebih dahulu.
Contoh berikut menunjukkan cara menghapus objek bernama exampleobject dari bucket examplebucket.
ossutil api delete-object --bucket examplebucket --key exampleobjectUntuk informasi lebih lanjut tentang perintah ini, lihat delete-object.
ossbrowser
ossbrowser mendukung operasi tingkat objek serupa dengan yang ada di Konsol OSS. Anda dapat menghapus objek dengan mengikuti petunjuk di antarmuka ossbrowser. Untuk informasi lebih lanjut tentang cara menggunakan ossbrowser, lihat Operasi Umum di ossbrowser.
SDK OSS
Kode berikut memberikan contoh cara menghapus objek tunggal menggunakan SDK OSS untuk bahasa pemrograman umum. Untuk informasi tentang cara menghapus objek tunggal menggunakan SDK OSS untuk bahasa pemrograman lainnya, lihat Pengenalan SDK OSS.
Java
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
public class Demo {
public static void main(String[] args) throws Exception {
// Dalam contoh ini, endpoint wilayah China (Hangzhou) digunakan. Tentukan endpoint aktual Anda.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tentukan jalur lengkap objek. Jangan masukkan nama bucket dalam jalur lengkap objek.
String objectName = "exampleobject.txt";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
String region = "cn-hangzhou";
// Buat instance OSSClient.
// Panggil metode shutdown untuk melepaskan sumber daya terkait ketika OSSClient tidak lagi digunakan.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Hapus objek atau direktori. Sebelum menghapus direktori, pastikan direktori tersebut tidak berisi objek.
ossClient.deleteObject(bucketName, objectName);
} catch (OSSException oe) {
System.out.println("Tangkap OSSException, yang berarti permintaan Anda mencapai OSS, "
+ "tetapi ditolak dengan respons kesalahan karena alasan tertentu.");
System.out.println("Pesan Kesalahan:" + oe.getErrorMessage());
System.out.println("Kode Kesalahan:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("ID Host:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Tangkap ClientException, yang berarti klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "seperti tidak dapat mengakses jaringan.");
System.out.println("Pesan Kesalahan:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
} Node.js
const OSS = require('ali-oss');
const client = new OSS({
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi oss-cn-hangzhou.
region: 'oss-cn-hangzhou',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
});
async function deleteObject() {
try {
// Tentukan jalur lengkap objek. Jangan masukkan nama bucket dalam jalur lengkap.
const result = await client.delete('exampleobject.txt');
console.log(result);
} catch (error) {
console.log(error);
}
}
deleteObject();
Browser.js
SDK OSS untuk Browser.js biasanya digunakan dalam lingkungan browser. Untuk mencegah pasangan AccessKey Anda terpapar, gunakan kredensial akses sementara yang diperoleh dari Layanan Token Keamanan (STS) untuk mengakses OSS. Kredensial akses sementara terdiri dari pasangan AccessKey dan token keamanan. Pasangan AccessKey terdiri dari ID AccessKey dan rahasia AccessKey. Untuk informasi lebih lanjut tentang cara memperoleh kredensial akses sementara, lihat Otorisasi Akses.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<button id="delete">Hapus</button>
<!-- Impor file SDK -->
<script type="text/javascript" src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
<script type="text/javascript">
const client = new OSS({
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi oss-cn-hangzhou.
region: 'yourRegion',
authorizationV4: true,
// Tentukan pasangan AccessKey sementara yang diperoleh dari STS. Pasangan AccessKey terdiri dari ID AccessKey dan rahasia AccessKey.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// Tentukan token keamanan yang Anda peroleh dari STS.
stsToken: 'yourSecurityToken',
// Tentukan nama bucket. Contoh: examplebucket.
bucket: "examplebucket",
});
const deleteSingle = document.getElementById("delete");
// Hapus objek tunggal.
deleteSingle.addEventListener("click", async () => {
// Tentukan nama objek yang ingin Anda hapus. Tentukan jalur lengkap objek. Jangan masukkan nama bucket dalam jalur lengkap. Contoh: exampledir/exampleobject.txt.
let result = await client.delete('exampledir/exampleobject.txt');
console.log(result);
});
</script>
</body>
</html>C#
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket. Contoh: examplebucket.
var bucketName = "examplebucket";
// Tentukan jalur lengkap objek. Jangan masukkan nama bucket dalam jalur lengkap. Contoh: exampledir/exampleobject.txt.
var objectName = "exampledir/exampleobject.txt";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
const string region = "cn-hangzhou";
// Buat instance ClientConfiguration dan modifikasi parameter default berdasarkan kebutuhan Anda.
var conf = new ClientConfiguration();
// Gunakan algoritma tanda tangan V4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instance OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Hapus objek.
client.DeleteObject(bucketName, objectName);
Console.WriteLine("Penghapusan objek berhasil");
}
catch (Exception ex)
{
Console.WriteLine("Penghapusan objek gagal. {0}", ex.Message);
}Android-Java
// Buat permintaan penghapusan.
// Tentukan nama bucket dan jalur lengkap objek. Dalam contoh ini, nama bucket adalah examplebucket dan jalur lengkap objek adalah exampledir/exampleobject.txt. Jangan masukkan nama bucket dalam jalur lengkap objek.
DeleteObjectRequest delete = new DeleteObjectRequest("examplebucket", "exampledir/exampleobject.txt");
// Secara asinkron hapus objek.
OSSAsyncTask deleteTask = oss.asyncDeleteObject(delete, new OSSCompletedCallback<DeleteObjectRequest, DeleteObjectResult>() {
@Override
public void onSuccess(DeleteObjectRequest request, DeleteObjectResult result) {
Log.d("asyncDeleteObject", "berhasil!");
}
@Override
public void onFailure(DeleteObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
// Tangani pengecualian permintaan.
if (clientExcepion != null) {
// Tangani pengecualian sisi klien, seperti pengecualian jaringan.
clientExcepion.printStackTrace();
}
if (serviceException != null) {
// Tangani pengecualian sisi server.
Log.e("KodeKesalahan", serviceException.getErrorCode());
Log.e("IDPermintaan", serviceException.getRequestId());
Log.e("IDHost", serviceException.getHostId());
Log.e("PesanAsli", serviceException.getRawMessage());
}
}
});Object C
OSSDeleteObjectRequest * delete = [OSSDeleteObjectRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
delete.bucketName = @"examplebucket";
// Tentukan jalur lengkap objek. Jangan masukkan nama bucket dalam jalur lengkap. Contoh: exampleobject.txt.
delete.objectKey = @"exampleobject.txt";
OSSTask * deleteTask = [client deleteObject:delete];
[deleteTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
// ...
}
return nil;
}];
// Implementasikan pemblokiran sinkron untuk menunggu tugas selesai.
// [deleteTask waitUntilFinished];C++
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* Inisialisasi informasi akun yang digunakan untuk mengakses OSS. */
/* Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. */
std::string Endpoint = "yourEndpoint";
/* Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou. */
std::string Region = "yourRegion";
/* Tentukan nama bucket. Contoh: examplebucket. */
std::string BucketName = "examplebucket";
/* Tentukan jalur lengkap objek. Contoh: exampleobject.txt. Jangan masukkan nama bucket dalam jalur lengkap. */
/* Jika Anda ingin menghapus direktori, atur ObjectName ke nama direktori. Jika direktori berisi objek, hapus semua objek dari direktori sebelum menghapus direktori. */
std::string ObjectName = "exampleobject.txt";
/* Inisialisasi sumber daya seperti sumber daya jaringan. */
InitializeSdk();
ClientConfiguration conf;
conf.signatureVersion = SignatureVersionType::V4;
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
client.SetRegion(Region);
DeleteObjectRequest request(BucketName, ObjectName);
/* Hapus objek. */
auto outcome = client.DeleteObject(request);
if (!outcome.isSuccess()) {
/* Tangani pengecualian. */
std::cout << "DeleteObject gagal" <<
",kode:" << outcome.error().Code() <<
",pesan:" << outcome.error().Message() <<
",IDPermintaan:" << outcome.error().RequestId() << std::endl;
return -1;
}
/* Lepaskan sumber daya seperti sumber daya jaringan. */
ShutdownSdk();
return 0;
}C
#include "oss_api.h"
#include "aos_http_io.h"
/* Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. */
const char *endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
/* Tentukan nama bucket. Contoh: examplebucket. */
const char *bucket_name = "examplebucket";
/* Tentukan jalur lengkap objek yang ingin Anda hapus. Jangan masukkan nama bucket dalam jalur lengkap. */
const char *object_name = "exampleobject.jpg";
/* Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou. */
const char *region = "yourRegion";
void init_options(oss_request_options_t *options)
{
options->config = oss_config_create(options->pool);
/* Gunakan string char* untuk menginisialisasi data bertipe aos_string_t. */
aos_str_set(&options->config->endpoint, endpoint);
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. */
aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
// Tentukan dua parameter tambahan.
aos_str_set(&options->config->region, region);
options->config->signature_version = 4;
/* Tentukan apakah menggunakan CNAME. Nilai 0 menunjukkan bahwa CNAME tidak digunakan. */
options->config->is_cname = 0;
/* Tentukan parameter jaringan, seperti periode timeout. */
options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char *argv[])
{
/* Panggil metode aos_http_io_initialize di main() untuk menginisialisasi sumber daya global, seperti sumber daya jaringan dan memori. */
if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
exit(1);
}
/* Buat pool memori untuk mengelola memori. aos_pool_t setara dengan apr_pool_t. Kode untuk membuat pool memori termasuk dalam pustaka APR. */
aos_pool_t *pool;
/* Buat pool memori. Nilai parameter kedua adalah NULL. Ini menunjukkan bahwa pool tidak mewarisi pool memori lainnya. */
aos_pool_create(&pool, NULL);
/* Buat dan inisialisasi opsi. Parameter ini mencakup informasi konfigurasi global, seperti endpoint, access_key_id, access_key_secret, is_cname, dan curl. */
oss_request_options_t *oss_client_options;
/* Alokasikan sumber daya memori di pool memori untuk opsi. */
oss_client_options = oss_request_options_create(pool);
/* Inisialisasi oss_client_options. */
init_options(oss_client_options);
/* Inisialisasi parameter. */
aos_string_t bucket;
aos_string_t object;
aos_table_t *resp_headers = NULL;
aos_status_t *resp_status = NULL;
/* Tetapkan data char* ke bucket bertipe aos_string_t. */
aos_str_set(&bucket, bucket_name);
aos_str_set(&object, object_name);
/* Hapus objek. */
resp_status = oss_delete_object(oss_client_options, &bucket, &object, &resp_headers);
/* Tentukan apakah objek dihapus. */
if (aos_status_is_ok(resp_status)) {
printf("hapus objek berhasil\n");
} else {
printf("hapus objek gagal\n");
}
/* Lepaskan pool memori. Operasi ini melepaskan sumber daya memori yang dialokasikan untuk permintaan. */
aos_pool_destroy(pool);
/* Lepaskan sumber daya global yang dialokasikan. */
aos_http_io_deinitialize();
return 0;
}Ruby
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Tentukan nama bucket. Contoh: examplebucket.
bucket = client.get_bucket('examplebucket')
# Tentukan jalur lengkap objek. Contoh: exampledir/exampleobject.txt. Jangan masukkan nama bucket dalam jalur lengkap.
bucket.delete_object('exampledir/exampleobject.txt') Go
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
// Definisikan variabel global.
var (
region string // Wilayah tempat bucket berada.
bucketName string // Nama bucket.
objectName string // Nama objek.
)
// Tentukan fungsi init yang digunakan untuk menginisialisasi parameter baris perintah.
func init() {
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada.")
flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
flag.StringVar(&objectName, "object", "", "Nama objek.")
}
func main() {
// Parsing parameter baris perintah.
flag.Parse()
// Periksa apakah nama bucket telah ditentukan.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama bucket diperlukan")
}
// Periksa apakah wilayah telah ditentukan.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, wilayah diperlukan")
}
// Periksa apakah nama objek telah ditentukan.
if len(objectName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama objek diperlukan")
}
// Muat konfigurasi default dan tentukan penyedia kredensial dan wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
// Buat permintaan untuk menghapus objek.
request := &oss.DeleteObjectRequest{
Bucket: oss.Ptr(bucketName), // Nama bucket.
Key: oss.Ptr(objectName), // Nama objek.
}
// Eksekusi permintaan dan proses hasilnya.
result, err := client.DeleteObject(context.TODO(), request)
if err != nil {
log.Fatalf("gagal menghapus objek %v", err)
}
// Tampilkan hasilnya.
log.Printf("hasil penghapusan objek:%#v\n", result)
}
Python
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser argumen baris perintah.
parser = argparse.ArgumentParser(description="contoh penghapusan objek")
# Tambahkan argumen baris perintah --region, yang menentukan wilayah tempat bucket berada. Argumen ini diperlukan.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tambahkan argumen baris perintah --bucket, yang menentukan nama bucket. Argumen ini diperlukan.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tambahkan argumen baris perintah --endpoint, yang menentukan nama domain yang dapat digunakan layanan lain untuk mengakses OSS. Argumen ini tidak diperlukan.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
# Tambahkan argumen baris perintah --key, yang menentukan nama objek. Argumen ini diperlukan.
parser.add_argument('--key', help='Nama objek.', required=True)
def main():
args = parser.parse_args() # Parsing argumen baris perintah.
# Muat kredensial dari variabel lingkungan untuk verifikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Muat konfigurasi default SDK dan atur penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Atur wilayah dalam konfigurasi.
cfg.region = args.region
# Jika parameter endpoint disediakan, atur endpoint dalam konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Buat klien OSS menggunakan informasi yang dikonfigurasi.
client = oss.Client(cfg)
# Eksekusi permintaan untuk menghapus objek. Tentukan nama bucket dan nama objek.
result = client.delete_object(oss.DeleteObjectRequest(
bucket=args.bucket,
key=args.key,
))
# Cetak kode status, ID permintaan, ID versi, dan penanda hapus dari permintaan untuk memeriksa apakah permintaan berhasil.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' ID versi: {result.version_id},'
f' penanda hapus: {result.delete_marker},'
)
if __name__ == "__main__":
main() # Titik masuk skrip. Fungsi utama dipanggil ketika file dijalankan langsung.PHP
<?php
// Masukkan file autoload untuk memuat pustaka dependensi.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Definisikan dan jelaskan parameter baris perintah.
$optsdesc = [
"region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Tentukan endpoint yang dapat digunakan oleh layanan lain untuk mengakses OSS.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Tentukan nama bucket.
"key" => ['help' => 'Nama objek', 'required' => True], // (Diperlukan) Tentukan nama objek.
];
// Konversikan deskripsi ke daftar opsi panjang yang diperlukan oleh getopt.
// Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
$longopts = \array_map(function ($key) {
return "$key:";
}, array_keys($optsdesc));
// Parsing argumen baris perintah.
$options = getopt("", $longopts);
// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help']; // Dapatkan informasi bantuan untuk parameter.
echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
exit(1); // Keluar dari program jika parameter yang diperlukan hilang.
}
}
// Tetapkan nilai yang diurai dari parameter baris perintah ke variabel yang sesuai.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$key = $options["key"]; // Nama objek.
// Muat kredensial akses dari variabel lingkungan.
// Gunakan EnvironmentVariableCredentialsProvider untuk mengambil ID AccessKey dan rahasia AccessKey dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Gunakan konfigurasi default SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // Tentukan endpoint jika disediakan.
}
// Buat instance OSSClient.
$client = new Oss\Client($cfg);
// Buat objek DeleteObjectRequest untuk menghapus objek yang ditentukan.
$request = new Oss\Models\DeleteObjectRequest(bucket: $bucket, key: $key);
// Hapus objek.
$result = $client->deleteObject($request);
// Tampilkan hasil operasi penghapusan objek.
// Tampilkan kode status HTTP dan ID permintaan untuk memeriksa apakah permintaan berhasil.
printf(
'kode status:' . $result->statusCode . PHP_EOL . // Kode status HTTP. Contohnya, kode status HTTP 204 menunjukkan bahwa penghapusan berhasil.
'ID permintaan:' . $result->requestId. PHP_EOL // ID permintaan, yang digunakan untuk debugging atau melacak permintaan.
);
API
Jika program Anda memiliki persyaratan yang sangat disesuaikan, Anda dapat mengirim permintaan REST API secara langsung. Ini memerlukan Anda untuk menulis kode secara manual guna menghitung tanda tangan. Untuk informasi lebih lanjut tentang operasi API untuk menghapus satu objek, lihat DeleteObject.
Hapus beberapa objek
Anda dapat menghapus hingga 1.000 objek dalam satu permintaan. Untuk menghapus lebih dari 1.000 objek, Anda harus mengirim beberapa permintaan.
Konsol OSS
Masuk ke Konsol OSS.
Di panel navigasi sisi kiri, klik Buckets. Pada halaman Buckets, temukan dan klik bucket yang diinginkan.
Di pohon navigasi sisi kiri, pilih Object Management > Objects.
Hapus objek OSS atau file HDFS.
Hapus objek OSS
Pada tab OSS Object, pilih beberapa objek dan klik Permanently Delete di bawah daftar objek.
Di kotak dialog yang muncul, klik OK.
Hapus file HDFS
Pada tab HDFS, klik Permanently Delete di kolom Tindakan pada file yang ingin Anda hapus.
CatatanTab HDFS tidak mendukung penghapusan batch. Anda harus menghapus file dari tab HDFS satu per satu.
Di kotak dialog yang muncul, klik OK.
ossutil
Sebelum Anda menggunakan ossutil, install terlebih dahulu.
Contoh berikut menunjukkan cara menghapus beberapa objek dari bucket examplebucket.
ossutil api delete-multiple-objects --bucket examplebucket --delete "{\"Quiet\":\"false\",\"Object\":[{\"Key\":\"multipart.data\"},{\"Key\":\"test.jpg\"}]}"Untuk informasi lebih lanjut tentang perintah ini, lihat delete-multiple-objects.
ossbrowser
ossbrowser mendukung operasi tingkat objek yang serupa dengan yang ada di Konsol OSS. Anda dapat menghapus objek dengan mengikuti petunjuk di antarmuka ossbrowser. Untuk informasi lebih lanjut tentang cara menggunakan ossbrowser, lihat Operasi Umum di ossbrowser.
SDK OSS
Kode berikut memberikan contoh cara menghapus beberapa objek menggunakan SDK OSS untuk bahasa pemrograman umum. Untuk informasi tentang cara menghapus beberapa objek menggunakan SDK OSS untuk bahasa pemrograman lainnya, lihat Pengenalan SDK OSS.
Java
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.DeleteObjectsRequest;
import com.aliyun.oss.model.DeleteObjectsResult;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) throws Exception {
// Dalam contoh ini, endpoint dari wilayah China (Hangzhou) digunakan. Tentukan endpoint sebenarnya Anda.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tentukan wilayah di mana bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou.
String region = "cn-hangzhou";
// Buat instance OSSClient.
// Panggil metode shutdown untuk melepaskan sumber daya terkait ketika OSSClient tidak lagi digunakan.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Hapus objek.
// Tentukan jalur lengkap dari beberapa objek yang ingin Anda hapus. Jangan sertakan nama bucket dalam jalur lengkap objek.
List<String> keys = new ArrayList<String>();
keys.add("exampleobjecta.txt");
keys.add("testfolder/sampleobject.txt");
keys.add("exampleobjectb.txt");
DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(new DeleteObjectsRequest(bucketName).withKeys(keys).withEncodingType("url"));
List<String> deletedObjects = deleteObjectsResult.getDeletedObjects();
try {
for(String obj : deletedObjects) {
String deleteObj = URLDecoder.decode(obj, "UTF-8");
System.out.println(deleteObj);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
} catch (OSSException oe) {
System.out.println("Tangkap OSSException, yang berarti permintaan Anda mencapai OSS, "
+ "tetapi ditolak dengan respons kesalahan karena alasan tertentu.");
System.out.println("Pesan Kesalahan:" + oe.getErrorMessage());
System.out.println("Kode Kesalahan:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("ID Host:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Tangkap ClientException, yang berarti klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "seperti tidak dapat mengakses jaringan.");
System.out.println("Pesan Kesalahan:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
} Node.js
const OSS = require('ali-oss');
const client = new OSS({
// Tentukan wilayah di mana bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke oss-cn-hangzhou.
region: 'oss-cn-hangzhou',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
});
async function deleteMulti() {
try {
// Tentukan jalur lengkap objek yang ingin Anda hapus dan atur mode hasil ke verbose. Jangan sertakan nama bucket dalam jalur lengkap.
// let result = await client.deleteMulti(['exampleobject-1', 'exampleobject-2', 'testfolder/sampleobject.txt']);
// console.log(result);
// Tentukan jalur lengkap objek yang ingin Anda hapus dan atur mode hasil ke quiet. Jangan sertakan nama bucket dalam jalur lengkap.
const result = await client.deleteMulti(['exampleobject-1', 'exampleobject-2', 'testfolder/sampleobject.txt'], {quiet: true});
console.log(result);
} catch (error) {
console.log(error);
}
}
deleteMulti();
Browser.js
SDK OSS untuk Browser.js biasanya digunakan dalam lingkungan browser. Untuk mencegah pasangan AccessKey Anda terungkap, gunakan kredensial akses sementara yang diperoleh dari Layanan Token Keamanan (STS) untuk mengakses OSS. Kredensial akses sementara terdiri dari pasangan AccessKey dan token keamanan. Pasangan AccessKey terdiri dari ID AccessKey dan rahasia AccessKey. Untuk informasi lebih lanjut tentang cara memperoleh kredensial akses sementara, lihat Otorisasi Akses.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Dokumen</title>
</head>
<body>
<button id="deleteAll">Hapus Semua</button>
<!-- Impor file SDK -->
<script
type="text/javascript"
src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.16.0.min.js"
></script>
<script type="text/javascript">
const client = new OSS({
// Tentukan wilayah di mana bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke oss-cn-hangzhou.
region: 'yourRegion',
authorizationV4: true,
// Tentukan pasangan AccessKey sementara yang diperoleh dari STS. Pasangan AccessKey terdiri dari ID AccessKey dan rahasia AccessKey.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// Tentukan token keamanan yang Anda peroleh dari STS.
stsToken: 'yourSecurityToken',
// Tentukan nama bucket. Contoh: examplebucket.
bucket: "examplebucket",
});
const deleteAll = document.getElementById("deleteAll");
// Hapus beberapa objek.
deleteAll.addEventListener("click", async () => {
// Tentukan nama objek yang ingin Anda hapus. Tentukan jalur lengkap objek. Jangan sertakan nama bucket dalam jalur lengkap.
let result = await client.deleteMulti([
"example.txt",
"exampleobject.txt",
"newexampleobject.txt",
]);
console.log(result);
result = await client.deleteMulti(
["example.txt", "exampleobject.txt", "newexampleobject.txt"],
{
// Atur parameter quiet untuk menentukan apakah akan mencantumkan semua objek yang dihapus. Jika Anda mengatur quiet ke true, OSS tidak akan mengembalikan daftar objek yang dihapus. Jika Anda mengatur quiet ke false, OSS akan mengembalikan daftar objek yang dihapus.
quiet: true,
}
);
});
</script>
</body>
</html>
C#
using OSS = AlibabaCloud.OSS.V2; // Buat alias untuk SDK OSS Alibaba Cloud untuk menyederhanakan penggunaan selanjutnya.
var region = "cn-hangzhou"; // Wajib. Atur wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou.
var endpoint = null as string; // Opsional. Tentukan nama domain yang digunakan untuk mengakses layanan OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
var bucket = "nama bucket Anda"; // Wajib. Nama bucket.
var keys = new List<String> // Wajib. Objek tujuan yang akan dihapus.
{
"kunci objek Anda1",
"kunci objek Anda2",
"kunci objek Anda3"
};
// Muat konfigurasi default SDK OSS. Konfigurasi secara otomatis membaca informasi kredensial (seperti AccessKey) dari variabel lingkungan.
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit atur penggunaan variabel lingkungan untuk mendapatkan kredensial untuk verifikasi identitas (format: OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET).
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket dalam konfigurasi.
cfg.Region = region;
// Jika endpoint ditentukan, itu akan menimpa endpoint default.
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Buat instance klien OSS menggunakan informasi konfigurasi.
using var client = new OSS.Client(cfg);
// Buat koleksi objek yang akan dihapus.
var objects = new List<OSS.Models.DeleteObject>();
// Iterasi daftar kunci objek yang akan dihapus (lewati jika keys adalah null).
foreach (var item in keys ?? [])
{
objects.Add(new OSS.Models.DeleteObject()
{
Key = item,
});
}
// Panggil metode DeleteMultipleObjectsAsync untuk mengeksekusi permintaan penghapusan batch.
var result = await client.DeleteMultipleObjectsAsync(new OSS.Models.DeleteMultipleObjectsRequest()
{
Bucket = bucket,
Objects = objects
});
// Cetak informasi hasil.
Console.WriteLine("DeleteMultipleObjects selesai"); // Pesan yang menunjukkan bahwa operasi selesai.
Console.WriteLine($"StatusCode: {result.StatusCode}"); // Kode status HTTP.
Console.WriteLine($"RequestId: {result.RequestId}"); // ID permintaan, yang digunakan untuk pemecahan masalah di Alibaba Cloud.
Console.WriteLine("Header Respons:"); // Informasi header respons.
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value)); // Iterasi dan cetak semua header respons.
Console.WriteLine("Kunci yang akan dihapus:");
keys?.ToList().ForEach(x => Console.WriteLine(x)); // Cetak daftar objek yang dihapus.Android-Java
// Tentukan jalur lengkap objek yang ingin Anda hapus. Jangan sertakan nama bucket dalam jalur lengkap.
List<String> objectKeys = new ArrayList<String>();
objectKeys.add("exampleobject.txt");
objectKeys.add("testfolder/sampleobject.txt");
// Atur isQuiet ke true untuk hanya mengembalikan daftar objek yang gagal dihapus.
DeleteMultipleObjectRequest request = new DeleteMultipleObjectRequest("examplebucket", objectKeys, true);
oss.asyncDeleteMultipleObject(request, new OSSCompletedCallback<DeleteMultipleObjectRequest, DeleteMultipleObjectResult>() {
@Override
public void onSuccess(DeleteMultipleObjectRequest request, DeleteMultipleObjectResult result) {
Log.i("DeleteMultipleObject", "sukses");
}
@Override
public void onFailure(DeleteMultipleObjectRequest request, ClientException clientException, ServiceException serviceException) {
// Tangani pengecualian permintaan.
if (clientException != null) {
// Tangani pengecualian sisi klien, seperti pengecualian jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Tangani pengecualian sisi server.
Log.e("KodeKesalahan", serviceException.getErrorCode());
Log.e("IDPermintaan", serviceException.getRequestId());
Log.e("IDHost", serviceException.getHostId());
Log.e("PesanMentah", serviceException.getRawMessage());
}
}
});Object C
// Tentukan jalur lengkap objek yang ingin Anda hapus. Jangan sertakan nama bucket dalam jalur lengkap.
List<String> objectKeys = new ArrayList<String>();
objectKeys.add("exampleobject.txt");
objectKeys.add("testfolder/sampleobject.txt");
// Atur isQuiet ke true untuk hanya mengembalikan daftar objek yang gagal dihapus.
DeleteMultipleObjectRequest request = new DeleteMultipleObjectRequest("examplebucket", objectKeys, true);
oss.asyncDeleteMultipleObject(request, new OSSCompletedCallback<DeleteMultipleObjectRequest, DeleteMultipleObjectResult>() {
@Override
public void onSuccess(DeleteMultipleObjectRequest request, DeleteMultipleObjectResult result) {
Log.i("DeleteMultipleObject", "sukses");
}
@Override
public void onFailure(DeleteMultipleObjectRequest request, ClientException clientException, ServiceException serviceException) {
// Tangani pengecualian permintaan.
if (clientException != null) {
// Tangani pengecualian sisi klien, seperti pengecualian jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Tangani pengecualian sisi server.
Log.e("KodeKesalahan", serviceException.getErrorCode());
Log.e("IDPermintaan", serviceException.getRequestId());
Log.e("IDHost", serviceException.getHostId());
Log.e("PesanMentah", serviceException.getRawMessage());
}
}
});C++
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* Inisialisasi informasi akun yang digunakan untuk mengakses OSS. */
/* Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. */
std::string Endpoint = "yourEndpoint";
/* Tentukan nama bucket. Contoh: examplebucket. */
std::string BucketName = "examplebucket";
/* Inisialisasi sumber daya seperti sumber daya jaringan. */
InitializeSdk();
ClientConfiguration conf;
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
DeleteObjectsRequest request(BucketName);
/* Tambahkan jalur lengkap beberapa objek yang ingin Anda hapus. */
request.addKey("yourObjectName1");
request.addKey("yourObjectName2");
/* Hapus objek. */
auto outcome = client.DeleteObjects(request);
if (!outcome.isSuccess()) {
/* Tangani pengecualian. */
std::cout << "DeleteObjects gagal" <<
",kode:" << outcome.error().Code() <<
",pesan:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
return -1;
}
/* Lepaskan sumber daya seperti sumber daya jaringan. */
ShutdownSdk();
return 0;
}C
#include "oss_api.h"
#include "aos_http_io.h"
/* Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. */
const char *endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
/* Tentukan nama bucket. Contoh: examplebucket. */
const char *bucket_name = "examplebucket";
/* Tentukan jalur lengkap objek yang ingin Anda hapus. Jangan sertakan nama bucket dalam jalur lengkap. */
const char *object_name1 = "exampleobject1.jpg";
const char *object_name2 = "testobject2.png";
/* Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. */
const char *region = "yourRegion";
void init_options(oss_request_options_t *options)
{
options->config = oss_config_create(options->pool);
/* Gunakan string char* untuk menginisialisasi data bertipe aos_string_t. */
aos_str_set(&options->config->endpoint, endpoint);
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. */
aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
// Tentukan dua parameter tambahan.
aos_str_set(&options->config->region, region);
options->config->signature_version = 4;
/* Tentukan apakah menggunakan CNAME. Nilai 0 menunjukkan bahwa CNAME tidak digunakan. */
options->config->is_cname = 0;
/* Tentukan parameter jaringan, seperti periode timeout. */
options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char *argv[])
{
/* Panggil metode aos_http_io_initialize di main() untuk menginisialisasi sumber daya global, seperti sumber daya jaringan dan memori. */
if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
exit(1);
}
/* Buat pool memori untuk mengelola memori. aos_pool_t setara dengan apr_pool_t. Kode untuk membuat pool memori termasuk dalam pustaka APR. */
aos_pool_t *pool;
/* Buat pool memori. Nilai parameter kedua adalah NULL. Nilai ini menunjukkan bahwa pool tidak mewarisi pool memori lain. */
aos_pool_create(&pool, NULL);
/* Buat dan inisialisasi opsi. Parameter ini mencakup informasi konfigurasi global, seperti endpoint, access_key_id, access_key_secret, is_cname, dan curl. */
oss_request_options_t *oss_client_options;
/* Alokasikan sumber daya memori di pool memori untuk opsi. */
oss_client_options = oss_request_options_create(pool);
/* Inisialisasi oss_client_options. */
init_options(oss_client_options);
/* Inisialisasi parameter. */
aos_string_t bucket;
aos_string_t object1;
aos_string_t object2;
int is_quiet = 1;
aos_table_t *resp_headers = NULL;
aos_status_t *resp_status = NULL;
aos_str_set(&bucket, bucket_name);
aos_str_set(&object1, object_name1);
aos_str_set(&object2, object_name2);
/* Buat daftar objek yang ingin Anda hapus. */
aos_list_t object_list;
aos_list_t deleted_object_list;
oss_object_key_t *content1;
oss_object_key_t *content2;
aos_list_init(&object_list);
aos_list_init(&deleted_object_list);
content1 = oss_create_oss_object_key(pool);
aos_str_set(&content1->key, object_name1);
aos_list_add_tail(&content1->node, &object_list);
content2 = oss_create_oss_object_key(pool);
aos_str_set(&content2->key, object_name2);
aos_list_add_tail(&content2->node, &object_list);
/* Hapus objek dalam daftar. `is_quiet` menentukan apakah hasil penghapusan dikembalikan. */
resp_status = oss_delete_objects(oss_client_options, &bucket, &object_list, is_quiet, &resp_headers, &deleted_object_list);
if (aos_status_is_ok(resp_status)) {
printf("penghapusan objek berhasil\n");
} else {
printf("penghapusan objek gagal\n");
}
/* Lepaskan pool memori. Operasi ini melepaskan sumber daya memori yang dialokasikan untuk permintaan. */
aos_pool_destroy(pool);
/* Lepaskan sumber daya global yang dialokasikan. */
aos_http_io_deinitialize();
return 0;
}Ruby
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Tentukan nama bucket. Contoh: examplebucket.
bucket = client.get_bucket('examplebucket')
# Tentukan jalur lengkap objek yang ingin Anda hapus. Jangan sertakan nama bucket dalam jalur lengkap.
objs = ['my-object-1', 'my-object-2']
result = bucket.batch_delete_objects(objs)
# Secara default, informasi tentang objek yang dihapus dikembalikan.
puts result #['my-object-1', 'my-object-2']
objs = ['my-object-3', 'my-object-4']
result = bucket.batch_delete_objects(objs, :quiet => true)
# Tentukan bahwa informasi tentang objek yang dihapus tidak dikembalikan.
puts result #[] Go
package main
import (
"context"
"flag"
"log"
"strings"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
// Definisikan variabel global.
var (
region string // Wilayah tempat bucket berada.
bucketName string // Nama bucket.
objects string // Daftar nama objek (dipisahkan dengan koma).
)
// Tentukan fungsi init yang digunakan untuk menginisialisasi parameter baris perintah.
func init() {
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada.")
flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
flag.StringVar(&objects, "objects", "", "Nama objek (dipisahkan dengan koma).")
}
func main() {
// Parsing parameter baris perintah.
flag.Parse()
// Periksa apakah nama bucket ditentukan.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama bucket diperlukan")
}
// Periksa apakah wilayah ditentukan.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, wilayah diperlukan")
}
// Periksa apakah daftar nama objek disediakan.
if len(objects) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama objek diperlukan")
}
// Muat konfigurasi default dan tentukan penyedia kredensial dan wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
// Ubah daftar nama objek menjadi slice.
var DeleteObjects []oss.DeleteObject
objectSlice := strings.Split(objects, ",")
for _, name := range objectSlice {
DeleteObjects = append(DeleteObjects, oss.DeleteObject{Key: oss.Ptr(strings.TrimSpace(name))})
}
// Buat permintaan untuk menghapus beberapa objek.
request := &oss.DeleteMultipleObjectsRequest{
Bucket: oss.Ptr(bucketName), // Nama bucket.
Objects: DeleteObjects, // Daftar objek yang akan dihapus.
}
// Eksekusi permintaan dan proses hasilnya.
result, err := client.DeleteMultipleObjects(context.TODO(), request)
if err != nil {
log.Fatalf("gagal menghapus beberapa objek %v", err)
}
// Tampilkan hasilnya.
log.Printf("hasil penghapusan beberapa objek:%#v\n", result)
}
Python
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser argumen baris perintah.
parser = argparse.ArgumentParser(description="contoh penghapusan beberapa objek")
# Tambahkan argumen baris perintah --region, yang menentukan wilayah tempat bucket berada. Argumen ini wajib.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tambahkan argumen baris perintah --bucket, yang menentukan nama bucket. Argumen ini wajib.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tambahkan argumen baris perintah --endpoint, yang menentukan nama domain yang dapat digunakan layanan lain untuk mengakses OSS. Argumen ini tidak wajib.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
# Tambahkan argumen baris perintah --key, yang menentukan nama objek. Argumen ini wajib.
parser.add_argument('--key', help='Nama objek.', required=True)
# Catatan: Jika Anda ingin menghapus beberapa objek, tambahkan argumen baris perintah --key2, yang menentukan nama objek.
parser.add_argument('--key2', help='Nama objek.', required=True)
def main():
# Parsing argumen baris perintah.
args = parser.parse_args()
# Muat kredensial dari variabel lingkungan untuk verifikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Muat konfigurasi default SDK dan atur penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Atur wilayah dalam konfigurasi.
cfg.region = args.region
# Jika parameter endpoint disediakan, atur endpoint dalam konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Buat klien OSS menggunakan informasi yang dikonfigurasi.
client = oss.Client(cfg)
# Definisikan daftar objek yang akan dihapus.
# Catatan: Jika Anda ingin menghapus beberapa objek, perluas daftar objek dalam format berikut.
objects = [oss.DeleteObject(key=args.key), oss.DeleteObject(key=args.key2)]
# Eksekusi permintaan untuk menghapus beberapa objek. Tentukan nama bucket, tipe encoding, dan daftar objek.
result = client.delete_multiple_objects(oss.DeleteMultipleObjectsRequest(
bucket=args.bucket,
encoding_type='url',
objects=objects,
))
# Cetak kode status, ID permintaan, dan informasi tentang objek yang dihapus untuk memeriksa apakah permintaan berhasil.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' kunci: {result.deleted_objects[0].key},'
f' versi id: {result.deleted_objects[0].version_id},'
f' penanda hapus: {result.deleted_objects[0].delete_marker},'
f' penanda hapus versi id: {result.deleted_objects[0].delete_marker_version_id},'
f' tipe encoding: {result.encoding_type},'
)
if __name__ == "__main__":
main() # Titik masuk skrip. Fungsi utama dipanggil ketika file dijalankan langsung.
API
Jika program Anda memiliki persyaratan yang sangat disesuaikan, Anda dapat mengirim permintaan REST API secara langsung. Ini mengharuskan Anda untuk menulis kode secara manual guna menghitung tanda tangan. Untuk informasi lebih lanjut tentang operasi API untuk menghapus beberapa objek, lihat DeleteMultipleObjects.
Hapus objek yang kedaluwarsa secara otomatis
Ketika sebuah bucket berisi jutaan atau bahkan ratusan juta objek, penghapusan manual memakan waktu dan rawan kesalahan. Anda dapat menggunakan aturan siklus hidup untuk menghapus objek secara otomatis dan berkala berdasarkan kondisi seperti waktu dan awalan nama objek. Ini mengurangi biaya operasional.