For this I created a public Backblaze bucket, created a lifecycle rule that deletes files after 7 days, created an application key with write privileges but not read ones, then wrote a script that uploads an arbitrary file under a random name so only people with the name will be able to download or overwrite it. The best part is that the file is available under an HTTP direct link, not behind an obscure webpage with ads, so it’s easy to deal with with any tool and doesn’t require the other end to install WhatsApp or Telegram etc, and there is no file size limit (you pay $1.5/TB but it’s fairly cheap if you deal mostly with files <1GB). Now I just wish I could write such a script for my mobile phone as easily.
Now this violates rule #1 (you need an account and you need to pay $6/TB/month for files stored, or $1.5/TB if you store files for only 7 days). For rule #4 you can set the lifecycle arbitrarily, like 1 day, such that the cost of storage is less than the cost of traffic.