要解决这个问题,可以使用Autodesk Forge API的Translate API来上传文件并获取URN。以下是一个示例代码,可以上传文件并处理包含逗号的文件名:
const request = require('request');
const fs = require('fs');
// 上传文件
function uploadFile(filename) {
const token = 'YOUR_FORGE_API_TOKEN';
const endpoint = 'https://developer.api.autodesk.com/oss/v2/buckets/YOUR_BUCKET_NAME/objects/' + encodeURIComponent(filename);
const options = {
method: 'PUT',
url: endpoint,
headers: {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/octet-stream'
},
body: fs.createReadStream(filename)
};
request(options, (error, response, body) => {
if (error) {
console.error('Upload failed:', error);
} else {
console.log('Upload successful:', body);
// 处理上传成功的响应
const responseJson = JSON.parse(body);
const urn = responseJson.objectId.toBase64();
console.log('URN:', urn);
}
});
}
// 调用上传文件函数
uploadFile('file_with_comma,.dwg');
注意替换代码中的占位符:
YOUR_FORGE_API_TOKEN
:替换为您的Autodesk Forge API令牌。YOUR_BUCKET_NAME
:替换为您的Bucket名称。'file_with_comma,.dwg'
:替换为包含逗号的文件名。这段代码会将文件上传到指定的Bucket,并获取文件的URN。请确保您已经配置了Autodesk Forge API的访问权限,并且替换了正确的令牌和Bucket名称。