对象相关接口 代码示例 生成预签名下载链接 javascript generateGetObjectSignedUrl: function (fileName, callback) { console.log("生成用于下载的预签名URL"); let params { Bucket: this.bucket, Key: fileName, Expires: 900, }; this.s3Client.getSignedUrl("getObject", params, function(err, url) { if (err) { console.error("生成URL时出错: ", err); } else { console.log("预签名URL: ", url); callback(url); } }); } 生成下载对象的预签名URL后,可以直接通过该URL请求下载文件 javascript getObjUsingPresignedUrl: function (presignedUrl) { console.log("开始下载文件..."); fetch(presignedUrl, { method: 'GET', }) .then(response > { if (response.ok) { return response.blob(); } else { throw new Error(下载失败,状态码: ${response.status}); } }) .then(blob > { const url URL.createObjectURL(blob); const a document.createElement('a'); a.href url; a.download "downloadedFile"; document.body.appendChild(a); a.click(); a.remove(); URL.revokeObjectURL(url); console.log("文件下载成功"); }) .catch(error > { console.error("下载出错: ", error); }); } 请求参数 参数 类型 说明 是否必要 Bucket String bucket的名称 是 Key String 对象的key 是 Expires Int 超时时间(秒) 否,默认900秒 返回结果 生成对应的预签名下载 URL,该链接允许用户在指定的时间内直接从媒体存储下载对象。 生成上传预签名URL 功能说明 getSignedUrl接口为一个指定对象生成一个预签名的上传链接,访问该链接可以直接上传对象到指定的媒体存储存储桶。 代码示例 生成预签名上传链接 javascript generatePutObjectSignedUrl: function (fileName, callback) { console.log("生成用于上传对象的预签名URL"); let params { Bucket: this.bucket, Key: fileName, Expires: 900, ContentType: "image/png", }; this.s3Client.getSignedUrl("putObject", params, function(err, url) { if (err) { console.error("生成URL时出错: ", err); } else { console.log("预签名URL: ", url); callback(url); } }); } 生成上传对象的预签名URL后,可以直接通过该URL将文件上传至媒体存储。 javascript putObjUsingPresignedUrl: function (presignedUrl, file) { console.log("开始上传文件..."); fetch(presignedUrl, { method: 'PUT', headers: { 'ContentType': 'image/png' // 需要跟生成预签名URL时指定的ContentType一致 }, body: file }) .then(response > { if (response.ok) { console.log("文件上传成功"); } else { console.error("上传失败,状态码: ", response.status); } }) .catch(error > { console.error("上传出错: ", error); }); }
来自: