Carga de imagenes en master data

Estoy tratando de almacenar una imagen por API Attachments para una base de datos en master data, me retorna 204 no content pero no almacena la imagen.

Esta es la API que uso:

https://{accountName}.{environment}.com.br/api/{dataentities}/{acronym}/documents/{id}/{field}/attachments

El campo es de tipo file y de hecho no retorna error cuando hago la petición, pero no entiendo que me está fallando. Le di todos los permisos posibles para ver si eso era el problema, pero sigue igual.

Hola @Blanca , qué tal?

Bienvenida sea a VTEX Community.

Hay un post de @matheus4 relacionado a este tema de upload de archivos en MasterData que ojalá te sirva.

Según lo manajas en su post, hay que hacer dos requests para un upload.

Está en portugués, pero creo que igual se compreende todo.

Hola Blanca,

Te comparto este video donde puedes encontrar una respuesta detallada a tu consulta, tu pregunta fue contestada en vivo en el office hour LATAM.

Te adjuntamos algunos endpoints de ejemplo:


Saludos!

1 Like

gracias por la información, la API funciona como lo muestran desde postman, el tema que yo tenía es que desde la pagina de developers (https://developers.vtex.com/vtex-rest-api/reference/attachments-1#saveattachment-1) se observa que al cargar la imagen desde mi local la convierte a base 64 lo que creí que funcionaba y me serviría para mi desarrollo, pero no funcionó, tuve que convertir a archivo blob y luego a tipo file para poder subirla.

NOTA: la documentación está errónea (no carga la imagen)

3 Likes

Gracias

1 Like

The right URL to access the file udploaded in Master Data is the following one:

https://{{accountName}}.vtexcommercestable.com.br/api/dataentities/{{acronym}}/documents/{{idWithouthAcronym}}/file/attachments/{{fileName}}

Pay attention to the {{idWithoutAcronym}} variable. When you upload a file to Master Data, it will generate a Registry Id with the format {{Acronym}}-{{randomId}}. For example: AC-af6e1fe9-95e7-11ed-83ab-02a7822e906g.

You’ll need to passonly the {{randomId}} part to the URL, without the acronym prefix. Example:

https://{{accountName}}.vtexcommercestable.com.br/api/dataentities/AC/documents/af6e1fe9-95e7-11ed-83ab-02a7822e906g/file/attachments/{{fileName}}.

That’s it. Don’t forget to select the field to be public in the Data Entity configuration.

Hello Pedro, perform the configuration as indicated but when consulting the file I get the message “Private fields cannot be read”, although in my data structure the field is public, currently I have the field configuration as follows


which I could be missing in my configuration, thanks in advance for your interest

Hello, @dany-menjura. One possible cause is that you must reindex and republish the entity after saving the field configuration. Could you please try it and see if it works? Thanks!

Thank you very much indeed that was my problem although I also had to generate some records after indexing and delete the previous ones

Good to know that it worked, @dany-menjura!

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.