UploadObject - изменения в файле не считаются

API Forge https://forge.autodesk.com/en/docs/data/v2/reference/http/buckets-:bucketKey-objects-:objectName-PUT/ имеет четкий метод для перезаписи существующего объекта тем же filename - заголовок If-Match.

Я использую API C # по адресу https://github.com/Autodesk-Forge/forge-api-dotnet-client, и я вызываю UploadObjectWithHttpInfo, чтобы загрузить новую версию файла (и установить параметр ifMatch с правильным хешем SHA1, который я сохранил из предыдущей загрузки). «Новая ревизия» - это не что иное, как тот же самый файл с удаленной очень заметной дверью на южной стороне здания. Визуальная проверка файлов в Revit 2017 показывает, что они разные. Я использую то же имя файла, что и предыдущая версия файла.

Если я не предоставлю правильный SHA-1, API правильно ответит HTTP 412. Если я правильно предоставлю SHA-1, API ответит ожидаемыми результатами, включая новый SHA-1 (который я сохраняю). Документ URN вроде не меняется.

Я немедленно вызываю другое задание Translate для этого файла (которое выполняется очень быстро), жду несколько минут и перехожу на страницу средства просмотра, которая загружает URN документа.

Средство просмотра показывает первую версию файла, при этом дверь все еще присутствует.

Что мне не хватает?


person Broam    schedule 31.10.2018    source источник
comment
Несколько быстрых проверок на всякий случай: - Вы загрузили новый URN из другого задания на перевод без двери? Он отличался от старого? - Можете ли вы проверить манифест и проверьте, присутствует ли дверь, просто чтобы изолировать проблему от кэшированного устаревшего содержимого?   -  person Bryan Huang    schedule 01.11.2018
comment
URN, iirc, напрямую основывается на FileName, которое намеренно не меняется. Моему приложению требуется заменить эту файловую функцию, которая берет новый файл и предоставляет его как обновление конечной точке с исходным именем файла. В ближайшее время ответим о манифесте   -  person Broam    schedule 01.11.2018
comment
Манифест показывает, что оба задания (перевод в SVF и эскиз) завершены.   -  person Broam    schedule 01.11.2018


Ответы (1)


Если URN не был изменен после перевода редакций, добавьте следующий заголовок, чтобы служба повторно сгенерировала все просматриваемые объекты:

x-ads-force: true

Проверил и обнаружил, что это работает для других. См. здесь, здесь, здесь и здесь.

Еще вы можете попробовать удалить манифест перед запуском задания. И также не позволяйте кешу браузера быть здесь ловушкой.

person Bryan Huang    schedule 05.11.2018
comment
Как мне это сделать, используя клиентские библиотеки Forge C # API? (Неважно, в более новых версиях есть необязательный аргумент) - person Broam; 08.11.2018
comment
Хорошо, похоже, это не работает, или я делаю что-то совершенно не так. Спасибо за предложение. - person Broam; 08.11.2018
comment
Загрузка версии файла под другим именем показывает изменения. Это определенно не работает даже с регенерацией силы. - person Broam; 08.11.2018
comment
Проблема не в кеше браузера, а в кеш-памяти программы просмотра. Я займусь расследованием. - person Broam; 14.11.2018