Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:FAQ (Browser.js SDK)

Son Güncelleme:Oct 01, 2026

OSS Browser.js SDK ile ilgili sık sorulan sorular ve çözümler.

STS'yi nasıl çağırırım?

Tarayıcılar güvenilmeyen ortamlardır. AccessKey ID ve AccessKey Secret değerlerinizi doğrudan tarayıcıda saklamak yüksek bir güvenlik riski oluşturur. Tarayıcıdan OSS API işlemlerini çağırmak için Security Token Service (STS) kullanın.

Bir STS belirteci edindikten sonra SDK'yı aşağıdaki gibi başlatın.

<script type="text/javascript">
  $.ajax("http://your_sts_server/",{method: 'GET'},function (err, result) {
    let client = new OSS({
      authorizationV4: true,
      accessKeyId: result.AccessKeyId,
      accessKeySecret: result.AccessKeySecret,
      stsToken: result.SecurityToken,
      region: 'yourRegion',
      bucket: 'yourBucketName'
    });
  });
</script>
            

HTTPS erişimini nasıl etkinleştiririm?

SDK başlatma sırasında secure:true ayarlayın. Daha fazla bilgi için bkz. Başlatma (Browser.js SDK).

Tarayıcıdaki çapraz etki alanı sorunlarını nasıl çözerim?

SDK'yı tarayıcıda kullanmadan önce paket için CORS (Cross-Origin Resource Sharing) kurallarını yapılandırın. Daha fazla bilgi için bkz. Hazırlıklar.

Yüklenen bir dosya için kullanıcı tanımlı meta verileri, MIME türlerini ve istek üstbilgilerini nasıl ayarlarım?

Daha fazla bilgi için bkz. Basit yükleme (Browser.js SDK).

Tarayıcıda kaldığı yerden devam eden yükleme nasıl çalışır?

Denetim noktasını tarayıcının yerel depolama alanına kaydedin ve yüklemeye kaldığı yerden devam etmek için bir sonraki çağrıda bu noktayı iletin. Daha fazla bilgi için bkz. Kaldığı yerden devam eden yükleme (Browser.js SDK).

Bir dosyayı belirli bir klasöre nasıl yüklerim?

Bir dosyayı belirli bir klasöre yüklemek için nesne adına bir önek belirtin.

let OSS = require('ali-oss')
let client = new OSS({
  authorizationV4: true,
  region: 'yourRegion',
  accessKeyId: 'yourAccessKeyId',
  accessKeySecret: 'yourAccessKeySecret',
  bucket: 'yourBucketName'
});

client.multipartUpload('base-dir/' +'object-key', 'local-file', {
    progress: async function (p) {
      console.log('Progress: ' + p);
    }
  });
  console.log(result);
}).catch((err) => {
  console.log(err);
});

            

Base64 kodlu bir görüntüyü nasıl yüklerim?

Base64 verilerini bir görüntüye dönüştürün ve ardından bir OSS yükleme işlemi çağırın. Daha fazla bilgi için GitHub örneğine bakın.

/**
 * Converts Base64 to a file.
 * @param dataurl   The Base64 content.
 * @param filename  Set a meaningful suffix. You can also set the MIME type in the options.
 * @returns {File|*}
 */
const dataURLtoFile = function dataURLtoFile(dataurl, filename) {
  const arr = dataurl.split(',');
  const mime = arr[0].match(/:(.*?);/)[1];
  const bstr = atob(arr[1]);
  let n = bstr.length;
  const u8arr = new Uint8Array(n);
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], { type: mime });// if env support File, also can use this: return new File([u8arr], filename, { type: mime });
};

// The client is an OSS client instance.
const uploadBase64Img = function uploadBase64Img(client) {
  // The Base64 content.
  const base64Content = 'data:image:****';
  const filename = 'img.png';
  const imgfile = dataURLtoFile(base64Content, filename);
 // The key is the object key for the upload. The imgFile is the image returned after being processed by dataURLtoFile.
  client.multipartUpload(key, imgfile).then((res) => {
    console.log('upload success: %j', res);
  }).catch((err) => {
    console.error(err);
  });
};

Yüklenen bir dosyanın boyutunu nasıl sınırlarım?

Tarayıcıda, belge üzerinden dosya boyutunu bayt cinsinden document.getElementById("file").files[0].size şeklinde alın. POST istekleri hakkında daha fazla bilgi için bkz. Tarayıcıdan OSS'ye veri yükleme.

Yükleme ilerlemesini nasıl alırım?

Yükleme ilerlemesini izlemek için çok parçalı yüklemeyi kullanın. Daha fazla bilgi için bkz. Çok parçalı yükleme (Browser.js SDK).

İndirme ilerlemesini nasıl alırım?

Browser.js SDK, indirme ilerlemesinin izlenmesini desteklemez. Bunun yerine bir indirme URL'si oluşturmak için signatureUrl yöntemini çağırın. Daha fazla bilgi için bkz. Referanslar.

Bir nesne için imzalı URL'yi nasıl alırım?

İmzalı bir indirme URL'si oluşturmak için signatureUrl yöntemini çağırın. Daha fazla bilgi için bkz. Dosyaları önizleme veya indirme (Browser.js SDK).

SDK tarafından oluşturulan imzalı bir URL kullanarak bir kaynağı nasıl yüklerim?

İmzalı URL'ler, kaynakları yüklemek ve indirmek için üçüncü taraflara erişim izni verir. SDK, imzalı bir URL oluşturmak için signatureUrl yöntemini sağlar. Bir örnek için bkz. İmzalı URL kullanarak kaynak yükleme örneği.

Bir form kullanarak bir kaynağı OSS sunucusuna nasıl yüklerim?

Daha fazla bilgi için bkz. Tarayıcıdan OSS'ye veri yükleme.

Örnek projeyi nasıl çalıştırırım?

ali-oss/example dizinine gidin ve npm run start komutunu çalıştırın.

Yükleme geri aramasını nasıl eklerim?

const uploadFile = function uploadFile(client) {
if (!uploadFileClient || Object.keys(uploadFileClient).length === 0) {
uploadFileClient = client;
}

const file = document.getElementById('file').files[0];
const key = document.getElementById('object-key-file').value.trim() || 'object';

console.log(`${file.name} => ${key}`);
const options = {
progress,
partSize: 500 * 1024,
timeout:60000,
meta: {
year: 2017,
people: 'test',
},
callback: {

// The position where the upload callback is added.
url: 'https://example.aliyundoc.com/v2/sync',
/* host: 'oss-cn-shenzhen.aliyuncs.com', */
/* eslint no-template-curly-in-string: [0] */
body: 'bucket=${bucket}&object=${object}&var1=${x:var1}',
contentType: 'application/x-www-form-urlencoded',
customValue: {
var1: 'value1',
var2: 'value2',
},
},

Yükleme geri aramaları hakkında daha fazla bilgi için bkz. Nasıl çalışır.

Tarayıcı, dosyalara parça parça göz atmayı destekler mi?

Hayır. Browser.js SDK, parça parça dosya göz atmayı desteklemez.

OSS JS SDK ile günlükleri nasıl toplarım?

Daha fazla bilgi için bkz. GitHub.

Yaygın hata referansı