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

升级至Autodesk .NET SDK(OssClient)后含空格文件名签名URL创建失败问题

解决Autodesk .NET SDK OssClient签名URL含空格文件无法访问的问题

原因分析

新版Autodesk .NET SDK的OssClient.CreateSignedResourceAsync()方法未自动处理对象键(objectKey)中的空格字符,生成的签名URL保留了原始空格,而Autodesk OSS服务端要求空格需以%20编码形式存在,导致访问时返回"object not found"。旧版Forge SDK及原生Object API会自动完成该编码步骤,因此无此问题。

手动编码对象键

调用SDK方法前,对含空格的objectKey单独进行URL编码,再传入方法:

using System;
using Autodesk.Forge;
using Autodesk.Forge.Model;

// 原始含空格的对象键
string originalObjectKey = "sample file with spaces.txt";
// 对对象键进行URL编码
string encodedObjectKey = Uri.EscapeDataString(originalObjectKey);

// 调用签名方法,传入编码后的键
var signedResult = await ossClient.CreateSignedResourceAsync(
    bucketKey: "your-target-bucket",
    objectKey: encodedObjectKey,
    expiresIn: 3600, // 签名有效期,单位秒
    verb: HttpVerb.GET // 根据需求选择HTTP方法
);

// 生成的URL已包含正确编码的空格,可直接使用
string validSignedUrl = signedResult.SignedUrl;

升级SDK版本

若手动编码后问题仍存在,建议升级至最新版的Autodesk.Forge NuGet包,部分早期版本的SDK存在编码逻辑缺陷,新版本已修复此类兼容问题。

注意事项

  • 仅对objectKey单独编码,不要对生成的签名URL进行二次编码
  • 除空格外,对象键中的其他特殊字符(如中文、/、?等)也需用Uri.EscapeDataString()编码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:52:33