NIP-96 or Blossom? At first glance I don't like either. Blossom should offer NIP-94 file metadata as HTTP header fields for GET downloads, not just BUD-08 /upload /mirror. Blossom allows delete, but what if two different users upload the same data? NIP-96 OTOH has a complex nip96.json file with weird decisions (e.g. waht if api_url specifies a different hostname? Why have delegated_to_url given that state of affairs? Who is going to understand these complex plan objects?)
Blossom 100% - way more robust, filenames across servers guaranteed to be the same
nip96 at start of PR dicussions had fixed routes with no nip96 config, just like blossom, but stakeholders wanted to specify custom api url to serve files from a different infra. download_url is optionally for using CDNs. Other keys are all optional. Also nip96 servers, specially free ones, may want to compress images/videos. That's why the file identifier is the file hash before compression. When using blossom, the client is supposed to compress before uploading.