Я получил эту работу,
- , импортировав CSV с полем "imageUrl", затем
- импортируя каждый файл (асинхронно) и
- присоединение каждого импортированного файла к полю «изображения» соответствующего элемента данных.
Сначала я импортировал CSV с полем "imageUrl".
Затем я вызвал кусок кода (я поместил его в $w.onReady()
страницы, но вы можете поместить его где угодно), чтобы вызвать importFile()
с дополнительным контекстом:
function importImages() {
wixData.query("myCollection")
.isEmpty("image")
.isNotEmpty("imageUrl")
.find() // max 1000 items
.then(result => Promise.all(result.items.map(item => {
return mediaManager.importFile('/images', item.imageUrl, {
"mediaOptions": {
"mediaType": "image"
},
"metadataOptions": {
"context": {
"itemId": item._id // <-- this is how we know which item to update later
}
}
});
}));
}
И я зарегистрировал прослушиватель событий для события onFileUploaded
Wix , чтобы обновить поле изображения для соответствующего элемента данных.
export function wixMediaManager_onFileUploaded(event) {
if (event.context.itemId) {
// get where item._id === event.context.itemId
return wixData.get("myCollection", event.context.itemId, { suppressAuth: true })
.then(itemToUpdate => {
// set the "image" field
itemToUpdate.image = event.fileInfo.fileUrl;
return wixData.update("myCollection", itemToUpdate, { suppressAuth: true });
});
}
}