You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Cloudflare Workers调用Autodesk Derivative API时返回403错误

问题描述

我在使用Cloudflare Workers调用Autodesk Derivative API下载文件时遇到403错误,按照Autodesk官方教程步骤3操作:

  • 本地发起请求完全正常,但通过Cloudflare Workers请求时持续返回403响应
  • 请求https://developer.api.autodesk.com/可以正常工作,但文件下载端点https://cdn.derivative.autodesk.com/...无法正常运行

请求代码如下:

export const fetchDerivative = async (
urn: EncodedUrn,
derivative: Urn,
token: Token) => {
const { cookies, url } = await signedCookies(urn, derivative, token)

const headers = cookies.map((value) => ["Cookie", value] as [string, string])
//FIXME: returns 403 when request from remote worker
const res = await fetch(url.url, {
  headers: headers
})

return res}

已确认所有参数(访问令牌、Cookie等)均有效,查阅Autodesk文档未找到针对Cloudflare Workers的特定限制。

可能的原因及排查方向
  • 请求头缺失或格式问题:Autodesk的CDN端点可能验证User-Agent、Referer等头信息。本地请求会自动带上浏览器的User-Agent,但Cloudflare Workers默认fetch请求的User-Agent可能被标记为可疑。尝试手动添加常见浏览器的User-Agent头:
    const res = await fetch(url.url, {
      headers: {
        ...Object.fromEntries(headers),
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
      }
    })
    
  • Cookie传递方式问题:代码中通过数组形式传递多个Cookie头,但部分服务器只接受单个Cookie头(所有键值对用分号分隔)。尝试合并Cookie:
    const cookieHeader = cookies.join("; ")
    const res = await fetch(url.url, {
      headers: {
        "Cookie": cookieHeader
      }
    })
    
  • Cloudflare Workers的IP被拦截:Autodesk的CDN可能对Cloudflare的IP段有访问限制。可以尝试在Workers中启用Cloudflare WARP,或使用自定义域名的Worker绕过IP检测。
  • 签名Cookie的绑定限制:Autodesk返回的签名Cookie可能绑定了请求源的IP或地域,本地请求的IP与Cloudflare Workers的IP地域不同,导致Cookie失效。需确保在Workers环境中重新生成Cookie,而非复用本地生成的。
  • TLS/加密套件不兼容:Cloudflare Workers的fetch使用的TLS版本或加密套件可能不被Autodesk CDN支持,可通过测试不同配置确认。

内容的提问来源于stack exchange,提问作者KA6957

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:42:43