# @adobe/asset-compute-sdk 中文文档

规范地址：https://npmcn.com/package/%40adobe/asset-compute-sdk/

版本：5\.3\.0
npm 元数据更新时间：2026-10-06T16:34:52.771Z
中文译文更新时间：2026-11-06T01:01:49.700Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40adobe/asset-compute-sdk
原文对照：https://npmcn.com/package/%40adobe/asset-compute-sdk/?lang=original
项目主页：https://github.com/adobe/asset-compute-sdk#readme
源码仓库：https://github.com/adobe/asset-compute-sdk

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：137 kB，19 个文件
- TypeScript 类型：未声明
- 运行依赖：21 个
- 首次发布：2020-05-04T22:51:31.923Z
- 最新版本发布：2026-10-06T16:34:52.581Z
- 近 30 天下载量：7512（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：72（近 12 个月 4 个）

## 中文简介

Adobe 资产计算工人 SDK

## 安装

```sh
npm install @adobe/asset-compute-sdk
```

也可以使用：`pnpm add @adobe/asset-compute-sdk`、`yarn add @adobe/asset-compute-sdk`、`bun add @adobe/asset-compute-sdk`

## README

[![Version](https://img.shields.io/npm/v/@adobe/asset-compute-sdk.svg)](https://npmjs.org/package/@adobe/asset-compute-sdk) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0) [![codecov](https://codecov.io/gh/adobe/asset-compute-sdk/branch/master/graph/badge.svg)](https://codecov.io/gh/adobe/asset-compute-sdk) [![Travis](https://travis-ci.com/adobe/asset-compute-sdk.svg?branch=master)](https://travis-ci.com/adobe/asset-compute-sdk)

# Adobe 资产计算工人 SDK

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

-   [Adobe 资产计算工人 SDK](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-adobe-asset-compute-worker-sdk)
-   [安装](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-installation)
-   [概览](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-overview)
-   [实例](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-examples)
    -   [简洁的日记工](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-simple-javascript-worker)
    -   [批次加工Javascript工人](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-batch-processing-javascript-worker)
    -   [果壳脚本工人](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-shellscript-worker)
-   [API 细节](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-api-details)
    -   [收回租金 `worker` (必须)](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-rendition-callback-for-worker-required)
        -   [参数](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-parameters)
            -   [**`source`**](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-source)
            -   [**`rendition`**](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-rendition)
            -   [**`params`**](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-params)
        -   [实例](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-examples-1)
    -   [收回租金 `batchWorker` (必须)](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-rendition-callback-for-batchworker-required)
        -   [参数](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-parameters-1)
            -   [**`source`**](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-source-1)
            -   [**`renditions`**](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-renditions)
            -   [**`outdir`**](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-outdir)
            -   [**`params`**](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-params-1)
        -   [实例](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-examples-2)
    -   [工人选项( 可选)](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-worker-options-optional)
-   [捐款准则](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-contribution-guidelines)
-   [现有资源和图书馆](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-available-resources-and-libraries)
-   [许可证发放](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-licensing)

## 安装

```bash
npm install @adobe/asset-compute-sdk
```

## 概览

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

1.  设置
    -   启动计量代理和 Adobe IO 事件处理器(参见 [资产计算公用](https://github.com/adobe/asset-compute-commons) 更多信息)
    -   为本地访问源码和引渡设置适当的目录
2.  下载源文件 `url` 内 [`source`](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-source) 对象
3.  运行 `renditionCallback` 用于每个引渡的函数([劳动者](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-renditioncallback-function-for-worker-required))或立即引渡([批发工人](https://npmcn.com/package/%40adobe/asset-compute-sdk/#readme-renditioncallback-function-for-batchworker-required)(中文(简体) )
    -   递解回话就是把工人逻辑放在那里 此函数至少需要将本地源文件转换为本地引渡文件
4.  每次引渡后通过Adobe IO事件通知客户
    -   它发出一个 `rendition_created` 或者说 `rendition_failed` 视结果而定的事件(见 [资产计算 API 同步事件](https://git.corp.adobe.com/nui/nui/blob/master/doc/api.md#asynchronous-events) 更多信息)
    -   如果工人是链条工人的一部分,它只会在链条上最后一个工人之后发出成功的引渡事件

## 实例

### 简洁的日记工

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

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

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

### 批次加工Javascript工人

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

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

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

### 果壳脚本工人

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

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

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

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

```js
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包含了所有需要这种替换的变量列表(如果有的话). 一个容易检查一个变量是否存储在文件中的方法是使用图案匹配来检查,例如:

```bash
# 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`**

包含以下属性的对象 :

| 名称 | 类型 | 说明 | 示例 |
| --- | --- | --- | --- |
| `url` | `string` | URL指向源二进制 . | `"http://example.com/image.jpg"` |
| `path` | `string` | 源文件本地副本的绝对路径 | `"/tmp/image.jpg"` |
| `name` | `string` | 档案名. 如果无法检测到 MIME 类型, 可能会使用名称中的文件扩展名 。 在 URL 路径中优先使用文件名, 在二进制资源的内容分散标题中优先使用文件名 。 默认为"文件". | `"image.jpg"` |
| `headers` | `object` | 在对 HTTP( S) 请求时包含额外信头的对象 `url` | `headers: { 'Authorization': 'auth-headers' }` |
| \##### **`rendition`** |  |  |  |
| 包含以下属性的对象 : |  |  |  |

| 名称 | 类型 | 说明 |
| --- | --- | --- |
| `instructions` | `object` | 从工人参数(如质量、dpi、格式、高等)中移出参数。 见完整列表 [这里](https://docs.adobe.com/content/help/en/asset-compute/using/api.html#rendition-instructions) |
| `directory` | `string` | 放置引渡目录 |
| `name` | `string` | 要创建的递解文件名 |
| `path` | `string` | 本地存储引渡的绝对路径( 必须将引渡放在这里才能上传到云存储) |
| `index` | `number` | 用于识别引渡的号码 |

##### **`params`**

原始参数传入工人(见完整 [资产计算 API Doc](https://docs.adobe.com/content/help/en/asset-compute/using/api.html#process-request)(中文(简体) )

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

#### 实例

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

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

```js
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`。 。 。 .

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

```js
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期望的是引渡输出.
    

禁用源下载示例 :

```js
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);
```

禁用移植上传示例 :

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

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

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

```js
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` 并将此包含在文件中 :

```json
{
    "postProcess": true
}
```

### 后处理功能

这些指示得到支持:

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

## 捐款准则

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

详细准则见 [捐款准则](https://npmcn.com/package/%40adobe/asset-compute-sdk/.github/CONTRIBUTING.md)同时,遵循这些 [Git 输入消息指南](https://chris.beams.io/posts/git-commit/)。 。 。 .

## 现有资源和图书馆

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

-   [资产计算 SDK](https://github.com/adobe/asset-compute-sdk):工人SDK和第三方定制工人的主要框架.
-   [资产计算](https://github.com/adobe/asset-compute-commons): 所有资产计算无服务器行动所需的通用公用事业.
-   [资产计算客户端](https://github.com/adobe/asset-compute-client): Adobe 资产计算服务的JavaScript客户端.
-   [资产计算实例工作者](https://github.com/adobe/asset-compute-example-workers):第三方资产计算工人样本.
-   [ESlint 配置](https://github.com/adobe/eslint-config-asset-compute):与Adobe资产计算服务相关的Nodejs项目共享ESLint配置.
-   [资产计算开发工具](https://github.com/adobe/asset-compute-devtool):用于开发者工具的库来探索并测试Adobe资产计算服务.
-   [aio-cli-插件-资产计算](https://github.com/adobe/aio-cli-plugin-asset-compute): Adobe I/O命令行接口的资产计算插件.
-   [Adobe 资产计算集成测试](https://github.com/adobe/asset-compute-integration-tests):资产计算开发者经验的集成测试.

## 许可证发放

这个项目根据Apache V2许可证获得许可. 见 [自由主义](https://npmcn.com/package/%40adobe/asset-compute-sdk/LICENSE) 更多信息.

## 常见问题

### @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 和提交记录判断。

