@adobe/asset-compute-sdk

中文文档
5.3.0发布于 2026/10/07Apache-2.0近 30 天下载 7512

Adobe 资产计算工人 SDK

中文使用文档
文档目录16 节
  1. 安装
  2. 概览
  3. 实例
  4. 简洁的日记工
  5. 批次加工Javascript工人
  6. 果壳脚本工人
  7. 关于大变量的说明
  8. API 细节
  9. 收回租金 worker (必须)
  10. 收回租金 batchWorker (必须)
  11. 工人选项( 可选)
  12. 员额处理
  13. 后处理功能
  14. 捐款准则
  15. 现有资源和图书馆
  16. 许可证发放

Version License codecov Travis

Adobe 资产计算工人 SDK

Adobe 资产计算服务的所有定制工作人员都需要这个图书馆。 它提供了一个易于使用的框架,并处理诸如资产和引渡访问、验证和类型检查、事件通知、错误处理等常见问题.

安装

npm install @adobe/asset-compute-sdk

概览

这些是Adobe资产计算员SDK完成的高级别步骤:

  1. 设置
    • 启动计量代理和 Adobe IO 事件处理器(参见 资产计算公用 更多信息)
    • 为本地访问源码和引渡设置适当的目录
  2. 下载源文件 url 内 source 对象
  3. 运行 renditionCallback 用于每个引渡的函数(劳动者)或立即引渡(批发工人(中文(简体) )
    • 递解回话就是把工人逻辑放在那里 此函数至少需要将本地源文件转换为本地引渡文件
  4. 每次引渡后通过Adobe IO事件通知客户
    • 它发出一个 rendition_created 或者说 rendition_failed 视结果而定的事件(见 资产计算 API 同步事件 更多信息)
    • 如果工人是链条工人的一部分,它只会在链条上最后一个工人之后发出成功的引渡事件

实例

简洁的日记工

要求每次引渡都履行引渡职能.

const { worker } = require('@adobe/asset-compute-sdk');

async function renditionCallback(source, rendition, params) => {
    // ... worker logic
}
const main = worker(renditionCallback, options);
await main(params);

批次加工Javascript工人

要求引渡与所有引渡一起运作.

const { batchWorker } = require('@adobe/asset-compute-sdk');

async function batchRenditionCallback(source, rendition, outdir, params) => {
    // ... worker logic
}
const main = batchWorker(batchRenditionCallback, options);
await main(params);

果壳脚本工人

使用用外壳书写的工人进行引渡.

const { shellScriptWorker } = require('../lib/api');

const main = shellScriptWorker(); // assumes script is in `worker.sh`
await main(params);

带有自定义脚本名的 shellscript工人

const { shellScriptWorker } = require('../lib/api');

const main = shellScriptWorker('custom-worker-name.sh'); // assumes script is in `custom-worker-name.sh`
await main(params);

关于大变量的说明

如果一个变量在大小上超过128kb(对于一些XMP元数据可能发生),它不能作为环境变量传递到 shell脚本. 相反,该变量被写入以下文件: ./vars 而文件的路径存储在环境变量中。 一个额外的环境变量FILE PARAMS包含了所有需要这种替换的变量列表(如果有的话). 一个容易检查一个变量是否存储在文件中的方法是使用图案匹配来检查,例如:

# Example of passing the variable as STDIN to a command regardless of if it a file or environment variable
if [[ "$rendition_myvariable" == "./vars/"* ]]
then
    # Value was stored in a file, do something with the file contents
    cat "$rendition_myvariable" >> somecommand
else
    # The value is in the environment variable $rendition_myvariable
    echo "$rendition_myvariable" >> somecommand

API 细节

这个 worker 财务报告和审定财务报表 batchWorker 需要两个参数: renditionCallback 财务报告和审定财务报表 options 如下文所述.

收回租金 worker (必须)

这个 renditionCallback 函数是设置自定义工人代码的地方。 这个函数的基本期望是查看来自 rendition.instructions 并把它转化为引渡,然后将引渡书写给 rendition.path。 。 。 .

引渡的制作可能涉及外部图书馆或API。 这些步骤也应该在您内部完成 renditionCallback 函数.

参数

引渡召回功能的参数如下: source, (中文(简体) ), rendition,以及 params

source

包含以下属性的对象 :

名称类型说明示例
urlstringURL指向源二进制 ."http://example.com/image.jpg"
pathstring源文件本地副本的绝对路径"/tmp/image.jpg"
namestring档案名. 如果无法检测到 MIME 类型, 可能会使用名称中的文件扩展名 。 在 URL 路径中优先使用文件名, 在二进制资源的内容分散标题中优先使用文件名 。 默认为"文件"."image.jpg"
headersobject在对 HTTP( S) 请求时包含额外信头的对象 urlheaders: { 'Authorization': 'auth-headers' }
##### rendition
包含以下属性的对象 :
名称类型说明
instructionsobject从工人参数(如质量、dpi、格式、高等)中移出参数。 见完整列表 这里
directorystring放置引渡目录
namestring要创建的递解文件名
pathstring本地存储引渡的绝对路径( 必须将引渡放在这里才能上传到云存储)
indexnumber用于识别引渡的号码
params

原始参数传入工人(见完整 资产计算 API Doc(中文(简体) )

说明: 通常不需要这种论据,因为回调应将其信息取自 rendition.instructions 这些是请求中的具体引渡参数.

实例

起码 引渡回调功能必须写点东西给 rendition.path。 。 。 .

最简单的例子( 复制源文件 ) :

async function renditionCallback(source, rendition) => {
    // Check for unsupported file
    const stats = await fs.stat(source.path);
    if (stats.size === 0) {
        throw new SourceUnsupportedError('source file is unsupported');
    }
    // process infile and write to outfile
    await fs.copyFile(source.path, rendition.path);
}

收回租金 batchWorker (必须)

这个 renditionCallback 函数在 batchWorker 这是你放的定制工人代码。 它的工作方式类似于 renditionCallback 函数在 worker 参数略有不同。 主要的区别在于每名工人只叫一次(而不是每次引渡).

这个功能的基本期望是,通过每个 renditions 并使用引渡 instructions 把它转换成引渡,然后写这个引渡到相应的 rendition.path。 。 。 .

参数

引渡召回功能的参数如下: source, (中文(简体) ), renditions, (中文(简体) ), outdir,以及 params

source

来源与 renditionCallback 内 worker

renditions

渲染是一组 rendition 对象。 每个 rendition 对象的结构与 renditionCallback 内 worker

outdir

将批发人员引渡的目录

params

params 与 renditionCallback 内 worker

实例

起码 引渡回调功能必须写点东西给 rendition.path。 。 。 .

最简单的例子( 复制源文件 ) :

async function renditionCallback(source, renditions, outdir, params) => {
    // Check for unsupported file
    const stats = await fs.stat(source.path);
    if (stats.size === 0) {
        throw new SourceUnsupportedError('source file is unsupported');
    }
    // process infile and write to outfile
    renditions.forEach(rendition, () => {
        await fs.copyFile(source.path, outdir + rendition.path);
    })
}

工人选项( 可选)

传递给工人的可选参数

  • disableSourceDownload:布尔用于禁用源下载(默认为虚假).

  • disableRenditionUpload: 布尔用于禁用递解上传( 默认为假) .

    警告: 只有在不上传引渡时才使用此旗帜 。 这将使工人的活化失败,因为资产计算SDK期望的是引渡输出.

禁用源下载示例 :

const { worker } = require('@adobe/asset-compute-sdk');

async function renditionCallback(source, rendition, params) => {
    // downloads source inside renditionCallback so does not need asset-compute-sdk to download source file
    await fetch(source.url);
}
const options = {
    disableSourceDownload: true
};
const main = worker(renditionCallback, options);
await main(params);

禁用移植上传示例 :

const { worker } = require('@adobe/asset-compute-sdk');
const options = {
    disableRenditionUpload: true
};
const main = worker(renditionCallback, options);
await main(params);

代表失败事件实例( 外部管弦乐手拥有重试) :

注意: Adobe 资产计算服务的自定义员工无法使用此特性; 选项被忽略。 。 。 .

const { worker } = require('@adobe/asset-compute-sdk');
const options = {
    // no `rendition_failed` events are sent; the result contains `renditionOutcomes` instead
    delegateFailureEvents: true,
    // optional, awaited (max 10 seconds) before the process exits on an action timeout
    // `err.renditionOutcomes` lists the status of every rendition, e.g. [{ index: 0, status: "success" },
    // { index: 1, status: "failed", errorType: "GenericError", message: "..." }]
    onBeforeTimeout: async (err) => { /* e.g. report err.renditionOutcomes to the orchestrator */ }
};
const main = worker(renditionCallback, options);
await main(params);

与 delegateFailureEvents数字 :

  • 结果( 或抛出的错误) 包含 renditionOutcomes 财务报告和审定财务报表 invocationFailed。 。 。 . invocationFailed 实值 true 当整个引用失败时。 每次请求的引渡都会产生结果,即使在引渡处理开始前(例如下载/准备期间)发生故障也是如此.
  • 在行动暂停时,未确认成功事件的引渡被报告为失败而等待成功公布。 迟到的成功事件可能仍会到来;这种交付模糊不清和可能的重试被接受. 重试计数由管弦乐手控制,而不是这个包.
  • 超时计量标准与 onBeforeTimeout 10秒后封顶 失败或挂起的度量衡调用无法阻止钩子运行或进程退出.
  • 输油管引渡没有有效的失败授权支持: worker(), (中文(简体) ), batchWorker() 财务报告和审定财务报表 shellScriptWorker() 在开始输油管前拒绝这个组合 没有代表团的管道电话没有改变;习惯工人仍然无视代表团的选择.
  • 超时处理使用共享的定稿承诺和最终结果。 正常完成等待暂停报告,包括在清理期间开始暂停。 超时处理器随后终止活化. onBeforeTimeout 得到一个快照,即延迟结果无法改变.
  • 在授权模式下,拒绝错误遥测不能取代原来的处理失败或去除其递解结果.
  • 来电供应 onBeforeTimeout; 此包本身不通知 Temperal 。 何时 @nui/node-temporal-sdk 接通了钩子,它必须与正常的完成路径协调报告所有权,以避免第二次通知.

员额处理

注意: Adobe 资产计算服务的自定义员工无法使用此特性。 。 。 .

图像邮递处理自版本以来已可用 2.4.0 并且必须由工人通过设定

rendition.postProcess = true;

在处理回调中.

对于 shell 脚本工作人员,他们可以创建 JSON 文件,其路径由env var 给脚本 optionsfile 并将此包含在文件中 :

{
    "postProcess": true
}

后处理功能

这些指示得到支持:

  • fmt 有png、jpg/jpeg、tif/tiff和gif
  • width 财务报告和审定财务报表 height
  • quality jpeg 和 gi
  • interlace 对 png
  • jpegSize 用于jpeg
  • dpi
  • convertToDpi
  • crop

捐款准则

资产计算服务有存储器模块化和命名准则. 它尽可能模块化,由无服务器概念和OpenWhisk框架所促进. 这意味着拥有小型和重点突出的GitHub储存库,以支持脱钩的开发和部署生命周期。 一个行动的存放处如果它代表了自己的小服务,如工人,就没问题。 如果您想要创建一个单独的寄存器, 请登录一个问题 资产计算 SDK 存储器。 。 。 .

详细准则见 捐款准则同时,遵循这些 Git 输入消息指南。 。 。 .

现有资源和图书馆

资产计算处的开源图书馆有:

许可证发放

这个项目根据Apache V2许可证获得许可. 见 自由主义 更多信息.

版本与发布记录

@adobe/asset-compute-sdk 共发布 72 个版本,首次发布于 2020/05/05;过去 12 个月发布了 4 个版本。

版本发布日期距今
5.3.0latest2026/10/0730 天前
5.2.02026/06/055 个月前
5.1.02026/06/055 个月前
5.0.02026/06/025 个月前
4.6.22024/12/111.9 年前
4.6.12024/03/192 年前

关于 @adobe/asset-compute-sdk 的常见问题

@adobe/asset-compute-sdk 是什么?

Adobe 资产计算工人 SDK

如何安装 @adobe/asset-compute-sdk?

在项目目录运行 npm install @adobe/asset-compute-sdk,或使用 pnpm add / yarn add / bun add。

@adobe/asset-compute-sdk 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/adobe__asset-compute-sdk 是否存在。

@adobe/asset-compute-sdk 可以商用吗?

@adobe/asset-compute-sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@adobe/asset-compute-sdk 的下载量有多少?

根据 npm 官方下载统计,@adobe/asset-compute-sdk 在 2026/10/05 – 2026/11/03 这 30 天内被下载 7,512 次,日均约 250 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adobe/asset-compute-sdk 还在维护吗?

最新版本 5.3.0 发布于 2026/10/07(30 天前);至今共发布 72 个版本,其中过去 12 个月发布了 4 个;首次发布于 2020/05/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。