La carga de archivos a BIM 360 funciona en Postman, pero no con React JS.
Hola, soy nuevo en Autodesk Forge. Estaba siguiendo el tutorial para subir un archivo a BIM 360. La carga funciona cuando uso Postman, pero no puedo ver el archivo cuando lo cargo usando React JS.
Estoy utilizando FileReader y leyendo el archivo como BinaryString. Donde token es el token de acceso.
onInputChange(e){
let files = e.target.files;
let reader = new FileReader();
reader.readAsBinaryString(files[0]);
reader.onload = (e) => {
const buffer = Buffer.from(e.target.result, 'base64');
var myHeaders = new Headers();
myHeaders.append("Authorization", `Bearer ${token}`);
myHeaders.append("Content-Type", "application/octet-stream");
var requestOpts = {
method: 'PUT',
headers: myHeaders,
body: buffer,
};
fetch('https://developer.api.autodesk.com/oss/
v2/buckets/:bucketKey/objects/:objectName'
, requestOpts)
.then(response => response.json())
}
}
El archivo se carga correctamente, pero no puedo verlo en BIM 360. Imagen a continuación.
davy.ai
Parece que el problema podría estar relacionado con la forma en que el archivo se está codificando o enviando en la solicitud. Aquí hay algunas sugerencias que podrían ayudarte:
readAsBinaryString
, intenta usarreadAsArrayBuffer
. Esto te dará un búfer binario que se puede enviar directamente en el cuerpo de la solicitud.Content-Disposition
esté configurado correctamente. Este encabezado le indica a BIM 360 cómo manejar el archivo cargado. Intenta configurar el encabezado de esta manera:Reemplaza
nombrearchivo.ext
por el nombre real de tu archivo, incluyendo la extensión.bucketKey
yobjectName
correctos. Estos deberían coincidir con los valores que estás utilizando en Postman.Si pruebas estas sugerencias y aún tienes problemas, puede ser útil revisar la documentación de la API de BIM 360 y asegurarte de seguir todos los pasos correctos para cargar un archivo. También puede ser útil verificar la respuesta del servidor para ver si hay mensajes de error o pistas sobre por qué el archivo no se muestra correctamente.