How to POST /assets

Hi there, I'm trying to upload an asset using POST /assets. I can't figure out how to send the file data, however. Currently, my code looks like this:
const upload = (body: {
file: File;
}) => {
const form = new FormData();

const uuid = crypto.randomUUID();
const now = new Date().toISOString();

form.set("assetData", body.file);
form.set("deviceId", uuid);
form.set("deviceAssetId", uuid);
form.set("fileCreatedAt", now);
form.set("fileModifiedAt", now);

return request("/assets", {
body: form,
method: "POST",
headers: {
Accept: "application/json",
"Content-Type":
"multipart/form-data; boundary=---WebKitFormBoundary7MA4YWxkTrZu0gW",
},
});
}
const upload = (body: {
file: File;
}) => {
const form = new FormData();

const uuid = crypto.randomUUID();
const now = new Date().toISOString();

form.set("assetData", body.file);
form.set("deviceId", uuid);
form.set("deviceAssetId", uuid);
form.set("fileCreatedAt", now);
form.set("fileModifiedAt", now);

return request("/assets", {
body: form,
method: "POST",
headers: {
Accept: "application/json",
"Content-Type":
"multipart/form-data; boundary=---WebKitFormBoundary7MA4YWxkTrZu0gW",
},
});
}
If I exclude the Content-Type header, I get a validation error saying the various fields are missing. If I add Content-Type: multipart/form-data, I get a Multipart: Boundary not found error. If I add Content-Type: multipart/form-data; boundary=---WebKitFormBoundary7MA4YWxkTrZu0gW, I get a Multipart: Unexpected end of form error. I found that boundary value in a few places on the web, but it doesn't seem to work. I'm not sure how to proceed. How do I upload an asset?
4 Replies
Immich
Immich4mo ago
:wave: Hey @SkepticMystic, Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:. References - Container Logs: docker compose logs docs - Container Status: docker ps -a docs - Reverse Proxy: https://immich.app/docs/administration/reverse-proxy - Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA
Immich
Immich4mo ago
Checklist I have... 1. :blue_square: verified I'm on the latest release(note that mobile app releases may take some time). 2. :blue_square: read applicable release notes. 3. :blue_square: reviewed the FAQs for known issues. 4. :blue_square: reviewed Github for known issues. 5. :blue_square: tried accessing Immich via local ip (without a custom reverse proxy). 6. :blue_square: uploaded the relevant information (see below). 7. :blue_square: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable (an item can be marked as "complete" by reacting with the appropriate number) Information In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider: - Your docker-compose.yml and .env files. - Logs from all the containers and their status (see above). - All the troubleshooting steps you've tried so far. - Any recent changes you've made to Immich or your system. - Details about your system (both software/OS and hardware). - Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h). - The version of the Immich server, mobile app, and other relevant pieces. - Any other information that you think might be relevant. Please paste files and logs with proper code formatting, and especially avoid blurry screenshots. Without the right information we can't work out what the problem is. Help us help you ;) If this ticket can be closed you can use the /close command, and re-open it later if needed.
GitHub
immich-app immich · Discussions
Explore the GitHub Discussions forum for immich-app immich. Discuss code, ask questions & collaborate with the developer community.
GitHub
Issues · immich-app/immich
High performance self-hosted photo and video management solution. - Issues · immich-app/immich
bo0tzz
bo0tzz4mo ago
assetData doesn't go in the form afaik https://immich.app/docs/guides/python-file-upload
SkepticMystic
SkepticMysticOP4mo ago
Interesting, thank you. Do you know what the equivalent for files=files is in JS fetch? Everything I've read about JS so far says the file needs to go in the main body somehow, using new FormData() I cannot figure this out... Been trying all day to upload an asset, but can't get past this form boundary error

Did you find this page helpful?