You need to enable JavaScript to run this app.
导航
数据抓取
最近更新时间:2024.08.12 15:33:26首次发布时间:2024.08.12 14:21:09

阅读本文,您可以获取 Node SDK 数据抓取的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。
  • 接口的参数说明和错误码等信息可通过接口文档查看。

前提条件

调用接口前,请先完成 Node SDK 的安装及初始化操作。

调用示例

本节为您介绍数据抓取相关接口的功能和调用示例。

数据抓取(Fetch)

您可以调用 FetchImageUrl 接口数据抓取(Fetch)。详细的参数说明可参见 FetchImageUrl 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";

export async function FetchImageUrlDemo() {
  try {
    const imagexService = new imagex.ImagexService({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      secretKey: process.env.VOLC_SECRETKEY,
    });

    const requestParam = {
      // 待抓取上传的文件 URL。
      Url: "https://test.org/con.jpg",
      // 目标服务 ID,迁移后的文件将上传至该服务绑定的存储。
      // <li> 您可以在 veImageX 控制台[服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li>
      ServiceId: "jh**9k",
      // 指定抓取成功后的文件存储 key,不包含 bucket 部分。默认使用随机生成的 key。
      // note:
      // 若指定 key 已存在,则会覆盖服务中 StoreKey 对应的已有文件,此时服务中保存文件的数量未发生变化。
      StoreKey: "FetchTest",
      // 资源下载超时时间。
      // <li> 同步处理下最大超时为 20 秒; </li>
      // <li> 异步处理下最大超时为 90 秒。 </li>
      TimeOut: 10,
      // 是否采用异步,取值如下所示:
      // <li> true:采用异步 </li>
      // <li> false:(默认)不采用异步 </li>
      // note:
      // 若您的资源大小小于 5 G,但预估资源迁移超时时间超过 20 s,建议您选择异步处理。
      Async: false,
      // 迁移资源的 IP 地址
      Host: "ip:port",
      // 回调 URL,veImageX 以 Post 方式向业务服务器发送 JSON 格式回调数据。当Async取值为true,即采用异步处理时,为必填。
      Callback: "https://info.com",
      // 校验下载文件的 MD5,若校验不一致则停止文件的上传。
      MD5: "9a8229123604d22d18b6dcfe44b4519e",
      // 透传给业务的回调内容,当Callback不为空时为必填,取值需要符合CallbackBodyType指定格式。
      CallbackBodyType: '{"param1":"value1","param2":"value2"}',
      // 透传给业务的回调内容格式。当CallbackBody不为空时为必填。取值如下所示:
      // <li> application/json </li>
      // <li> application/x-www-form-urlencoded </li>
      CallbackBody: "application/json",
      // 回调时使用的 IP 地址
      CallbackHost: "ip:port",
      // 服务存储中存在相同的存储 key 时,是否忽略本次迁移操作。取值如下所示:
      // <li> true:忽略本次迁移操作。 </li>
      // <li> false:(默认)继续迁移并覆盖相同 key 的资源。 </li>
      IgnoreSameKey: false,
      // 文件在抓取时,是否不执行解码操作,取值如下所示:
      // <li> true:文件仅下载上传,不执行解码操作。 </li>
      // <li> false:(默认)文件在下载上传同时执行解码操作。 </li>
      FetchOnly: true,
    };

    const res = await imagexService.FetchImageUrl(requestParam);
    console.log("res", res);
  } catch (err) {
    console.error(err);
  }
}

获取异步抓取任务详情

您可以调用 GetUrlFetchTask 接口获取异步抓取任务详情。详细的参数说明可参见 GetUrlFetchTask 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";

export async function GetUrlFetchTaskDemo() {
  try {
    const imagexService = new imagex.ImagexService({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      secretKey: process.env.VOLC_SECRETKEY,
    });

    const requestParam = {
      // 异步任务 ID,您可通过调用 [FetchImageUrl](https://www.volcengine.com/docs/508/68807)接口获取该 ID。
      Id: "92830H07WJS28370",
      ServiceId: "xxxx",
    };

    const res = await imagexService.GetUrlFetchTask(requestParam);
    console.log("res", res);
  } catch (err) {
    console.error(err);
  }
}