OSS, klasör yapısını simüle eden dizinler sunarak çok sayıda nesneyi düzenlemeyi, bulmayı ve toplu işlemler gerçekleştirmeyi kolaylaştırır.
Kullanım notları
Webpack ve Browserify gibi paketleme araçlarını kullanırken, npm install ali-oss komutunu çalıştırarak Browser.js için OSS SDK'yı yükleyin.
Bir tarayıcıdan bir OSS paketine erişmek istiyorsanız ancak paket için CORS kuralları yapılandırılmamışsa tarayıcı isteği reddeder. Bu nedenle, bir pakete tarayıcıdan erişmek istiyorsanız paket için CORS kurallarını yapılandırmanız gerekir. Daha fazla bilgi için bkz. Kurulum.
-
Browser.js için OSS SDK çoğunlukla tarayıcılarda kullanılır. AccessKey çiftinizin açığa çıkmasını önlemek amacıyla OSS'a erişirken Security Token Service (STS) üzerinden elde edilen geçici erişim kimlik bilgilerini kullanmanızı öneririz.
Geçici erişim kimlik bilgileri bir AccessKey çifti ve bir güvenlik belirtecinden oluşur. AccessKey çifti bir AccessKey ID ve bir AccessKey Secret içerir. Geçici erişim kimlik bilgilerini nasıl elde edeceğiniz hakkında daha fazla bilgi için bkz. Geçici erişim yetkilendirmesi için STS kullanın.
Dizin oluşturun
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
</head>
<body>
<script>
const client = OSS({
// Set yourRegion to the region where the bucket is located. For example, if the region is China (Hangzhou), set yourRegion to oss-cn-hangzhou.
region: 'yourRegion',
authorizationV4: true,
// The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from the STS service.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// The security token (SecurityToken) obtained from the STS service.
stsToken: 'yourSecurityToken',
// Specify the bucket name.
bucket: 'examplebucket'
});
// Specify the directory name. The directory name must end with a forward slash (/).
client
.put("log/", new Blob([]))
.then((r) => {
console.log(r);
})
.catch((e) => {
console.log(e);
});
</script>
</body>
</html>
Dizin silin
Bir Prefix belirterek bir dizini ve içindeki tüm nesneleri silin. Örneğin, examplebucket paketindeki log dizinini silmek için Prefix değerini log/ olarak ayarlayın.
Bir dizini silmek, alt dizinlerini ve nesnelerini de siler. İşlemi dikkatle gerçekleştirin.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
</head>
<body>
<script>
const client = new OSS({
// Set yourRegion to the region where the bucket is located. For example, if the region is China (Hangzhou), set yourRegion to oss-cn-hangzhou.
region: "yourRegion",
authorizationV4: true,
// The temporary AccessKey ID and AccessKey secret obtained from the STS service.
accessKeyId: "yourAccessKeyId",
accessKeySecret: "yourAccessKeySecret",
// The security token obtained from the STS service.
stsToken: 'yourSecurityToken',
// Specify the bucket name. For example, examplebucket.
bucket: "examplebucket",
});
// Handle request failures. This prevents promise.all from being interrupted and returns the failure reason and the name of the failed file.
async function handleDel(name, options) {
try {
await client.delete(name);
} catch (error) {
error.failObjectName = name;
return error;
}
}
// Delete multiple files.
async function deletePrefix(prefix) {
const list = await client.list({
prefix: prefix,
});
list.objects = list.objects || [];
const result = await Promise.all(
list.objects.map((v) => handleDel(v.name))
);
console.log(result);
}
// Delete a directory and all files in the directory.
deletePrefix("log/");
</script>
</body>
</html>
İlgili konular
Dizin oluşturmak için çağırabileceğiniz API işlemleri hakkında daha fazla bilgi için bkz. PutObject ve CreateDirectory.
Klasörleri ve içindeki tüm dosyaları silmek için kullanılan API işlemi hakkında daha fazla bilgi için bkz. DeleteObject.