Why Nostr? What is Njump?
2024-07-13 18:11:29

Ademan on Nostr: #nostrdev #asknostr #nostr-tools I'm unable to complete nip96 uploads across ...

#nostrdev #asknostr #nostr-tools

I'm unable to complete nip96 uploads across nostrcheck, nostr.build, and files.v0l.io I suspect it's my fault somehow, but I'm burning more time than I'd like troubleshooting. I'm using nostr-tools and afaict based on reading nip-96, examining the nostr-tools code, and looking at the requests, I'm not certain what's wrong here.

Afaict the Authorization form field is non-standard but harmless (hacking it out did not change the responses I'm getting, and reading the void-cat-rs source it looks like it should be ignored anyway).

```
POST /n96 HTTP/2
Host: files.v0l.io
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br, zstd
Referer: http://localhost:5000/
Authorization: Nostr REDACTED
Content-Type: multipart/form-data
Content-Length: 24052
Origin: http://localhost:5000
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
Priority: u=4
TE: trailers

-----------------------------11234029581503681683701650224
Content-Disposition: form-data; name="Authorization"

Nostr REDACTED
-----------------------------11234029581503681683701650224
Content-Disposition: form-data; name="size"

22933
-----------------------------11234029581503681683701650224
Content-Disposition: form-data; name="file"; filename="2024-07-06-152337_1000x175_scrot.png"
Content-Type: image/png

... snip ...
-----------------------------11234029581503681683701650224--
```

You can see from the size field that the file is quite small.

I get a 400 response from all three services. (Not a 401 or 403 or anything) I'm pretty sure I'm generating the authorization token correctly (also using nostr-tools) and I glanced at the nostr.build source code and I'm reasonably confident the response I'm getting back is generated before the auth header is checked.

Both nostr.build and nostrcheck have some kind of message indicating a problem with the file upload portion. (files.v0l.io gives me a generic 400 html response)

nostr.build example

```
'{"status":"error","message":"Either no file or more than one file posted. Only one file is expected."}'
```

I'm not a web guy so nothing is jumping out at me, but does anyone notice something obviously wrong with the request?
Author Public Key
npub19jescdjr3wk552j3q77f3awwhe4qy2ds24xce773exd28nr7emqsm2pt7r