When i’m getting record from n8n, i can’t use the image URL to access the image itself. Only in the case if i’m logged in the Seatable account.
I want to show the thumbnails on my website. How can i get those links publicly visible?
When i’m getting record from n8n, i can’t use the image URL to access the image itself. Only in the case if i’m logged in the Seatable account.
I want to show the thumbnails on my website. How can i get those links publicly visible?
Use the n8n Action „get public url“.
Unfortunately I haven’t find such an option in n8n
You have to install the latest version of the SeaTable community node:
https://forum2.seatable.io/t/rework-of-n8n-seatable-integration/2745/10
Thank you. I’ve installed this. Can I ask how to better do in this situation? For example after getting rows, I’m receiving data in such format:
As by logic i guessed that i have to use the node which called “asset:getPublicUrl” but this node is working only with single path and can’t process the array of paths.
How can I keep the same array structure of public links output as original assets. for example like this:
Really? It is not that difficult.
Probably I made my question wrong. Well, I will try to explain more accurate. For example, after getting all records, i got 2 records, where: first record contains array with 3 pictures, second row contains an array with 2 pictures.
After applying module “asset:getPublicUrl” in the output i want to receive the same object structure as original row object but asset URL will be replaced with download URL. Here is a scheme:
How to perform this bulk transform?
Hi @kingbest1195 ,
This was kind of tricky, and here is the solution I found, probably not the most elegant, but at least working:
I used a Split Out node to go from this two items to 5 different items (the two first images + the three other images) before getting the public URLs, and then a Code node with the following code :
let links=[];
let rowData=[];
// Loop over the outputs of the asset: getPublicURL node to create an array of public urls
for (const item of $input.all()) {
links.push(item.json);
}
let i = 0;
// Loop over the outputs of the row: list node and adding the publicURL key and value to the corresponding image
for (const data of $('SeaTable row:getAll').all()) {
for (let img of data.json.image) {
img.publicURL = links[i].download_link;
i++;
}
rowData.push(data);
}
return rowData;
Hope this helps,
Benjamin
Thank you Benjamin, i’m trying this way now!
Thank you a lot, Benjamin! This way works amazing! Speed of course not ideal but solvable with caching.
Maybe i will figure out how to speed up this workflow myself
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.
Do it like thousands of other people who have used SeaTable to develop powerful processes and get their ideas and tasks done more efficiently.