You need to enable JavaScript to run this app.
文档中心
文档控制台
免费开始使用
对象存储

对象存储

复制全文
下载 pdf
图片处理
图片处理持久化(Node.js SDK)
复制全文
下载 pdf
图片处理持久化(Node.js SDK)

TOS 默认不保存处理后的图片。您可以使用代码将处理后的图片保存至指定的存储桶。本文介绍如何通过 TOS Node.js SDK 将处理后的图片保存至指定存储桶。

注意事项

  • 使用图片处理持久化的账号必须拥有原图所在桶的读权限,图片转存的目标桶的写权限。
  • 使用匿名用户将处理后的图片保存至指定的存储桶时,该存储桶必须为公共写权限。
  • 原图所在桶与图片转存的目标桶必须属于同一地域。
  • 转存图片的访问权限默认为私有,存储类型默认为标准存储。

示例代码

以下代码展示如何将图片高度固定为 100px,图片格式转换为 JPG 格式,然后将处理后的图片命名为 temp.jpg,并保存至目标存储桶。

// 导入 SDK, 当 TOS Node.JS SDK 版本小于 2.5.2 请把下方 TosClient 改成 TOS 导入
import { TosClient, TosClientError, TosServerError } from '@volcengine/tos-sdk';

// 创建客户端
const client = new TosClient({
  accessKeyId: process.env['TOS_ACCESS_KEY'],
  accessKeySecret: process.env['TOS_SECRET_KEY'],
  region: "Provide your region", // 填写 Bucket 所在地域。以华北2(北京)为例,则 "Provide your region" 填写为 cn-beijing。
  endpoint: "Provide your endpoint", // 填写域名地址
});

function handleError(error) {
  if (error instanceof TosClientError) {
    console.log('Client Err Msg:', error.message);
    console.log('Client Err Stack:', error.stack);
  } else if (error instanceof TosServerError) {
    console.log('Request ID:', error.requestId);
    console.log('Response Status Code:', error.statusCode);
    console.log('Response Header:', error.headers);
    console.log('Response Err Code:', error.code);
    console.log('Response Err Msg:', error.message);
  } else {
    console.log('unexpected exception, message: ', error);
  }
}

const bucketName = 'node-sdk-test-bucket';
async function main() {
  try {
    // 原图名称
    const imageKey = 'image.png';
    // 指定保存处理后图片的存储桶的名称
    const saveBucket = '*** Provide your bucket name ***';
    // 指定处理后图片的名称
    const saveObject = 'temp.jpg';

    // 请求并增加数据处理
    const style = 'image/resize,h_100/format,jpg'; /* 将图片高度固定为 100px,并转为 JPG 格式 */
    const { data, requestId, headers } = await client.getObjectV2({
      bucket: bucketName,
      key: imageKey,
      process: style,
      dataType: 'buffer',
      saveBucket: Buffer.from(saveBucket).toString('base64url'),
      saveObject: Buffer.from(saveObject).toString('base64url'),
    });

    console.log('getObjectV2 Request ID: ', requestId);
    console.log('ContentType: ', headers['content-type']);
    const info = JSON.parse(data.content.toString());
    console.log('Save As Result: %o', info);
  } catch (error) {
    handleError(error);
  }
}

main();

相关文档

关于图片处理持久化的详细介绍,请参见图片处理持久化

最近更新时间:2024.02.04 18:31:09
这个页面对您有帮助吗?
有用
有用
无用
无用