Я использую API управления данными Forge для доступа к моим файлам A360 и преследую цель перевести их в формат SVF, чтобы я мог просматривать их в своем средстве просмотра. До сих пор мне удалось достичь желаемого элемента, используя ForgeDataManagement.ItemsApi, но я не знаю, что делать с элементом, чтобы загрузить его в ведро в моем приложении.Загрузка файла с Autodesk A360 в bucket в NodeJS
Из документации кажется, что uploadObject - это путь (https://github.com/Autodesk-Forge/forge.oss-js/blob/master/docs/ObjectsApi.md#uploadObject), но я точно не знаю, как заставить эту функцию работать.
var dmClient = ForgeDataManagement.ApiClient.instance;
var dmOAuth = dmClient.authentications ['oauth2_access_code'];
dmOAuth.accessToken = tokenSession.getTokenInternal();
var itemsApi = new ForgeDataManagement.ItemsApi();
fileLocation = decodeURIComponent(fileLocation);
var params = fileLocation.split('/');
var projectId = params[params.length - 3];
var resourceId = params[params.length - 1];
itemsApi.getItemVersions(projectId, resourceId)
.then (function(itemVersions) {
if (itemVersions == null || itemVersions.data.length == 0) return;
// Use the latest version of the item (file).
var item = itemVersions.data[0];
var contentLength = item.attributes.storageSize;
var body = new ForgeOSS.InputStream();
// var body = item; // Using the item directly does not seem to work.
// var stream = fs.createReadStream(...) // Should I create a stream object lik suggested in the documention?
objectsAPI.uploadObject(ossBucketKey, ossObjectName, contentLength, body, {}, function(err, data, response) {
if (err) {
console.error(err);
} else {
console.log('API called successfully. Returned data: ' + data);
//To be continued...
}
Надеюсь, кто-то может мне помочь!
Мои текущие данные:
ossObjectName = "https://developer.api.autodesk.com/data/v1/projects/"myProject"/items/urn:"myFile".dwfx";
ossBucketKey = "some random string based on my username and id";
С уважением, torjuss
Благодарим вас за ответ, cyrille! Имеет смысл использовать файлы A360 напрямую, не переходя в ведро приложения. Однако; когда я теперь пытаюсь запустить свой просмотрщик и загрузить документ, я получаю несанкционированный статус 401, независимо от того, использую ли я 2 или 3-хточечную проверку подлинности (не совсем уверен, какой из них использовать). Я использую следующий метод: Autodesk.Viewing.Document.load (documentId, oauth3legtoken, function (doc) {...}); И получить следующий статус HTTP: https://developer.api.autodesk.com/oss-ext/v1/acmsessions 401 (неавторизованный) – torjuss
Я нашел следующее сообщение, похоже, что оно связано с этой проблемой. Знаете ли вы, было ли это исправлено, или мне нужно использовать альтернативный подход, который предлагает Филипп Лифсма? http://stackoverflow.com/questions/37835178/creating-a-viewer-application-with-an-urn-from-autodesk-a360/38328133#38328133 – torjuss