Autodesk Forge / BIM360 загрузить .rvt: NEEDS_PROCESSING / Ошибка извлечения - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь загрузить .rvt в документы BIM360. Я могу успешно пройти шаг 5 по этой ссылке , но как только я туда доберусь, все go не так. Если я загружу .zip или какой-либо другой формат, я смогу пройти шаг 6. Если я попробую .rvt, ответ сообщит мне, что 'processState': 'NEEDS_PROCESSING', а журнал publi sh в BIM360 Docs говорит: ' Ошибка извлечения ». Я пробовал несколько файлов .rvt разного размера, и они всегда одни и те же. Если я попытаюсь выполнить загрузку с помощью запроса PUT '/ resumable', это тоже не удастся. Любая помощь будет оценена. Соответствующий код:

def read_file_chunks(open_file, chunk_size = 3145728):
    while True:
        data = open_file.read(chunk_size)
        if not data:
            break
        yield data

def upload_to_storage(bucket_key, object_name, filepath, filename):
    upload_url = forge_base + forge_bucket + '/' + bucket_key + '/objects/' + urllib.parse.quote(object_name) + '/resumable'
    bare_token3 = token3.get('Authorization')
    session_id = uuid.uuid1()
    upload_file = filepath + filename
    file_size = os.path.getsize(upload_file)
    open_file = open(upload_file, 'rb')
    index = 0
    for chunk in read_file_chunks(open_file):
        offset = index + len(chunk)
        print (offset)
        content_type = 'application/octet-stream'
        content_length = str(file_size)
        print (content_length)
        content_range = 'bytes %s=%s/%s'% (index, offset, file_size)
        print (content_range)
        index = offset
        upload_header = {'Authorization': bare_token3, 'Content-Type': content_type, 'Content-Length': content_length, 'Content-Range': content_range, 'Session-Id': str(session_id)}
        print (upload_header)
        upload_response = requests.put(upload_url, headers=upload_header, data=chunk)
        print (upload_response)
    return upload_response.json()
...