Object Storage Service (OSS) Browser.js yazılım geliştirme kiti (SDK) istemcisi, paketler ve dosyalar gibi OSS kaynaklarını yönetir. Bir OSS isteği göndermek için bir istemci örneği başlatmanız gerekir; varsayılan yapılandırmaları ihtiyaçlarınıza göre değiştirebilirsiniz.
Önkoşullar
Browser.js SDK'yı yüklemiş olmalısınız. Daha fazla bilgi için bkz. Kurulum (Browser.js SDK).
Yeni bir istemci oluşturun
Signature V4 (Recommended)
Daha güvenli olan V4 imza algoritmasını kullanın. Bir istemciyi V4 imzasıyla başlatırken authorizationV4 parametresini belirtin. V4 imzalar, OSS Browser.js SDK V6.20.0 ve sonraki sürümlerinde desteklenir.
Aşağıdaki örnek, bir OSS alan adı kullanarak başlatma sırasında V4 imzasının nasıl kullanılacağını gösterir. Özel bir alan adı ile başlatma gibi diğer senaryolar için örneği gerektiği gibi değiştirin.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<!--Import the SDK file.-->
<script
type="text/javascript"
src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.20.0.min.js"
></script>
<script type="text/javascript">
const client = new OSS({
// Set yourRegion to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set yourRegion to oss-cn-hangzhou.
region: 'yourRegion',
authorizationV4: true,
// The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from Security Token Service (STS).
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// The security token obtained from STS.
stsToken: 'yourSecurityToken',
// Specify the bucket name. For example, examplebucket.
bucket: "examplebucket",
});
</script>
</body>
</html>
Signature V1 (Not recommended)
1 Mart 2025 tarihinden itibaren Alibaba Cloud Object Storage Service (OSS), yeni kullanıcılar (yani yeni UID'ler) için V1 imzası sunmamaktadır. 1 Eylül 2025 tarihinden itibaren OSS, V1 imzasını güncellemeyi ve sürdürmeyi durduracak ve yeni nesne depolama paketleri için V1 imzası sunmayacaktır. Hizmet kesintilerini önlemek için mümkün olan en kısa sürede V4 imzasına geçiş yapın. Daha fazla bilgi için bkz. Announcement.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<!--Import the SDK file.-->
<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({
// Set yourRegion to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set yourRegion to oss-cn-hangzhou.
region: 'yourRegion',
// The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from STS.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// The security token obtained from STS.
stsToken: 'yourSecurityToken',
// Specify the bucket name. For example, examplebucket.
bucket: "examplebucket",
});
</script>
</body>
</html>
İstemciyi yapılandırın
İstemciyi başlatırken gerektiği şekilde yapılandırma öğeleri ekleyebilirsiniz. Örneğin, istek zaman aşımı süresini belirtmek için timeout parametresini ve geçici bir erişim kimlik bilgisini belirtmek için stsToken parametresini kullanabilirsiniz. Browser.js tarafından desteklenen yapılandırma öğeleri ve örnekler hakkında daha fazla bilgi için aşağıdaki bölümlere bakın.
options parametre açıklamaları
accessKeyId {String}: İsteklerinizi kimlik doğrulamak için kullanılan AccessKey ID.
accessKeySecret {String}: İsteklerinizi kimlik doğrulamak için kullanılan AccessKey Secret.
[stsToken] {String}: Geçici yetkilendirme için kullanılan Security Token Service belirteci.
[refreshSTSToken] {Function}: STS belirtecinin süresi dolduğunda stsToken, accessKeyId ve accessKeySecret değerlerini otomatik olarak ayarlayan bir işlev. Bu işlev, stsToken, accessKeyId ve accessKeySecret içeren bir nesne döndürmelidir.
[refreshSTSTokenInterval] {number}: Milisaniye cinsinden Security Token Service belirteci yenileme aralığı. Bu değer, STS belirtecinin sona erme süresinden daha az olmalıdır. Varsayılan değer 300.000 milisaniyedir (5 dakika).
[bucket] {String}: Erişmek istediğiniz varsayılan paket. Paket yoksa putBucket() işlemine çağrı yaparak paketi oluşturabilirsiniz.
[endpoint] {String}: OSS bölgesine özel alan adı. Bu parametrenin önceliği region parametresinden daha yüksektir. Bu parametreyi gerektiği şekilde bir genel uç nokta, aynı bölgedeki dahili uç nokta veya hızlandırılmış bir alan adına ayarlayabilirsiniz. Daha fazla bilgi için uç noktalar listesine bakın.
[region] {String}: Paketin bulunduğu bölge. Varsayılan değer oss-cn-hangzhou'dur. oss-cn-hangzhou veya oss-cn-beijing gibi belirli bir bölge değeri kullanın. Çin anakarasındaki Anywhere Buckets'a erişmek için bu parametreyi rg-china-mainland olarak da ayarlayabilirsiniz; ancak daha hassas bölgesel yönlendirme için belirli bir bölge değeri tercih edilir.
[internal] {Boolean}: OSS'e Alibaba Cloud dahili ağı üzerinden erişilip erişilmeyeceğini belirtir. Varsayılan değer false'tur. Sunucunuz da Alibaba Cloud üzerinde çalışıyorsa veri aktarım maliyetlerini azaltmak için bu parametreyi true olarak ayarlayın.
[secure] {Boolean}: OSS istemcisinin HTTPS (secure: true) veya HTTP (secure: false) protokolünü kullanıp kullanmadığını belirtir.
[timeout] {String|Number}: Tüm işlemler için saniye cinsinden zaman aşımı süresi. Varsayılan değer 60'tır.
[cname] {Boolean}: OSS'e erişmek için özel bir alan adının kullanılıp kullanılmayacağını belirtir. Varsayılan değer false'tur. Bu parametreyi true olarak ayarlarsanız endpoint alanında özel alan adını belirtmeniz gerekir.
[isRequestPay] {Boolean}: Paket için İstekte Öde özelliğinin etkinleştirilip etkinleştirilmeyeceğini belirtir. Varsayılan değer false'tur. Bu parametreyi true olarak ayarlarsanız 'x-oss-request-payer': 'requester' üst bilgisi OSS sunucusuna gönderilir.
[useFetch] {Boolean}: Bu parametre yalnızca tarayıcı ortamında etkili olur. Varsayılan değer false'tur. Bu parametreyi true olarak ayarlarsanız nesneler fetch yöntemi kullanılarak yüklenir. Aksi takdirde XMLHttpRequest kullanılır.
[retryMax] {Number}: Ağ hatası veya zaman aşımı nedeniyle başarısız olan bir istek için maksimum yeniden deneme sayısı. putStream işlemleri için yeniden deneme desteklenmez.
[authorizationV4] {Boolean}: V4 imzasının kullanılıp kullanılmayacağını belirtir. Varsayılan değer false'tur.
Örnekler
-
Temel kullanım
const OSS = require('ali-oss'); const store = new OSS({ region: 'yourRegion', authorizationV4: true, accessKeyId: 'your access key', accessKeySecret: 'your access secret', stsToken: 'yourSecurityToken', bucket: 'your bucket name', }); -
Hızlandırılmış uç nokta kullanın
NotGlobal Accelerator uç noktası: oss-accelerate.aliyuncs.com
Çin anakarası dışındaki bölgeler için hızlandırılmış uç nokta: oss-accelerate-overseas.aliyuncs.com
const OSS = require('ali-oss'); const store = new OSS({ region: 'yourRegion', authorizationV4: true, accessKeyId: 'your access key', accessKeySecret: 'your access secret', stsToken: 'yourSecurityToken', bucket: 'your bucket name', endpoint: 'oss-accelerate.aliyuncs.com', }); -
Özel bir erişim yöntemi kullanın
const OSS = require('ali-oss'); const store = new OSS({ region: 'yourRegion', authorizationV4: true, stsToken: 'yourSecurityToken', accessKeyId: 'your access key', accessKeySecret: 'your access secret', cname: true, endpoint: 'your custome domain', }); -
STS belirteci kullanarak erişin
const OSS = require('ali-oss'); const store = new OSS({ region: 'yourRegion', authorizationV4: true, accessKeyId: 'your STS key', accessKeySecret: 'your STS secret', stsToken: 'your STS token', refreshSTSToken: async () => { const info = await fetch('you sts server'); return { accessKeyId: info.accessKeyId, accessKeySecret: info.accessKeySecret, stsToken: info.stsToken, }; }, refreshSTSTokenInterval: 300000, }); -
Akış kullanarak bir isteği yeniden deneyin
for (let i = 0; i <= store.options.retryMax; i++) { try { const result = await store.putStream('<example-object>', fs.createReadStream('<example-path>')); console.log(result); break; // break if success } catch (e) { console.log(e); } } -
V4 imzası ve isteğe bağlı additionalHeaders seçeneğini kullanın
const OSS = require('ali-oss'); const store = new OSS({ accessKeyId: 'your access key', accessKeySecret: 'your access secret', bucket: 'your bucket name', region: 'oss-cn-hangzhou', authorizationV4: true , stsToken: 'yourSecurityToken', }); try { const bucketInfo = await store.getBucketInfo('your bucket name'); console.log(bucketInfo); } catch (e) { console.log(e); } try { const putObjectResult = await store.put('your bucket name', 'your object name', { headers: { // The headers of this request header1: 'value1', header2: 'value2', }, // The keys of the request headers to include in the V4 signature calculation. Ensure that these additional headers are included in the request headers. additionalHeaders: ['additional header1', 'additional header2'], }); console.log(putObjectResult); } catch (e) { console.log(e); }