Я пытаюсь загрузить .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()