当您上传的文件小于 5GiB 时,您可以使用简单上传的方式(即 PutObject 方式),将文件或数据上传到 TOS。
tos:PutObject
权限,详细信息,请参见权限配置指南。以下代码用于上传数据到 examplebucket 中 exampledir 目录下的 exampleobject.txt 文件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> </head> <body> <button id="upload">上传</button> <input id="file" type="file" /> <!-- 导入 SDK 文件 --> <script src="https://tos-public.volccdn.com/obj/volc-tos-public/@volcengine/tos-sdk@latest/browser/tos.umd.production.min.js"></script> <script type="text/javascript"> const client = new TOS({ // yourRegion 填写 Bucket 所在地域。以华北2(北京)为例,yourRegion 填写为 cn-beijing。 region: yourRegion, // 填写 endpoint 名称。 endpoint: yourEndpoint, // 从 STS 服务获取的临时访问密钥(AccessKey ID 和 AccessKey Secret)。 accessKeyId: yourAccessKey, accessKeySecret: yourSecretKey, // 从 STS 服务获取的安全令牌(SecurityToken)。 stsToken: yourSecurityToken, // 填写 Bucket 名称。 bucket: examplebucket, }); const headers = { // 指定该 Object 被下载时网页的缓存行为。 // 'Cache-Control': 'no-cache', // 指定过期时间。 // 'Expires': 'Wed, 08 Jul 2022 16:57:01 GMT', // 指定 Object 的存储类型。 // 'x-tos-storage-class': 'Standard', // 指定 Object 的访问权限。 // 'x-tos-acl': 'private', }; async function putObject(data) { try { // 填写 Object 完整路径。Object 完整路径中不能包含 Bucket 名称。 // 您可以通过自定义文件名(例如 exampleobject.txt)或文件完整路径(例如 exampledir/exampleobject.txt)的形式实现将数据上传到当前 Bucket 或 Bucket 中的指定目录。 // data 对象可以自定义为 File 对象、Blob 数据。 const result = await client.putObject({ key: "exampledir/exampleobject.txt", body: data, // headers, }); console.log(result); } catch (e) { console.log(e); } } const upload = document.getElementById("upload"); upload.addEventListener("click", () => { // 从输入框获取 file 对象,例如<input type="file" id="file" />。 const data = document.getElementById("file").files[0]; console.log("data", data); // 或者创建并填写 Blob 数据。 // const data = new Blob(['Hello TOS']); putObject(data); }); </script> </body> </html>