Bu konu, dosyaları, BLOB verilerini veya arabellekleri Object Storage Service (OSS) hizmetine yüklemek için PutObject işleminin nasıl çağrılacağını açıklar. Basit yüklemelerde ilerleme işlevleri kullanılamaz.
Önkoşullar
Browser.js için OSS SDK yüklüdür. Daha fazla bilgi için bkz. Kurulum.
Kullanım notları
Webpack ve Browserify gibi paketleme araçlarını kullandığınızda, Browser.js için OSS SDK'yı npm install ali-oss komutunu çalıştırarak 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 ifşa olmasını önlemek amacıyla OSS'a erişirken Security Token Service (STS) üzerinden alınan geçici erişim kimlik bilgilerini kullanmanızı öneririz.
Geçici erişim kimlik bilgileri; bir AccessKey çiftinden ve bir güvenlik belirtecinden oluşur. AccessKey çifti, bir AccessKey ID ve bir AccessKey Secret içerir. Geçici erişim kimlik bilgilerinin nasıl alınacağı hakkında daha fazla bilgi için bkz. Geçici erişim yetkilendirmesi için STS kullanma.
İzinler
Varsayılan olarak bir Alibaba Cloud hesabı tam yetkilere sahiptir. Bir Alibaba Cloud hesabı altındaki RAM kullanıcıları veya RAM rolleri varsayılan olarak herhangi bir izne sahip değildir. Alibaba Cloud hesabı veya hesap yöneticisi, işlem izinlerini RAM ilkeleri veya Paket İlkesi aracılığıyla vermelidir.
|
API |
Eylem |
Açıklama |
|
PutObject |
|
Bir nesne yükler. |
|
|
Bir nesne yüklerken |
|
|
|
Bir nesne yüklerken |
|
|
|
Örnek Kod
BLOB (Binary Large Object), büyük bir ikili nesnedir.
Aşağıdaki kod, examplebucket paketindeki exampledir dizininde exampleobject.txt adlı bir nesneye veri yüklemeye ilişkin bir örnek sağlar:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<input id="file" type="file" />
<button id="upload">Upload an Object</button>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
<script>
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: "yourRegion",
authorizationV4: true,
// Specify the temporary AccessKey pair obtained from STS. The AccessKey pair consists of an AccessKey ID and an AccessKey secret.
accessKeyId: "yourAccessKeyId",
accessKeySecret: "yourAccessKeySecret",
// Specify the security token that you obtained from STS.
stsToken: "yourSecurityToken",
// Specify the name of the bucket.
bucket: "examplebucket",
});
// Select the local file from the drop-down list. Example: <input type="file" id="file" />.
let data;
// Create and specify the Blob data.
//const data = new Blob(['Hello OSS']);
// Create an OSS buffer and specify the content of the OSS buffer.
//const data = new OSS.Buffer(['Hello OSS']);
const upload = document.getElementById("upload");
async function putObject(data) {
try {
// Specify the full path of the object. Do not include the bucket name in the full path.
// Specify the object name or the full path of the object to upload data to the current bucket or a specific directory in the bucket. For example, set the object name to exampleobject.txt or the path of the object to exampledir/exampleobject.txt.
// You can set the data to files, Blob data, or OSS buffers.
const options = {
meta: { temp: "demo" },
mime: "json",
headers: { "Content-Type": "text/plain" },
};
const result = await client.put("examplefile.txt", data, options);
console.log(result);
} catch (e) {
console.log(e);
}
}
upload.addEventListener("click", () => {
const data = file.files[0];
putObject(data);
});
</script>
</body>
</html>
SSS
Basit bir yükleme için yükleme ilerlemesini alabilir miyim?
Hayır, alamazsınız. Yükleme ilerlemesi yalnızca çok parçalı yükleme (Browser.js SDK) ve kaldığı yerden devam eden yükleme (Browser.js SDK) için kullanılabilir.
İlgili Konular
Basit yükleme için eksiksiz örnek kodu görmek üzere GitHub örneğine bakın.
Basit yükleme API işlemi hakkında daha fazla bilgi için bkz. PutObject.