Can my django app act as a header-stripping proxy?
Public Soundcloud track urls force a download upon browsing to them by utilizing a Content-Disposition header (I think.. ) which triggers a download for a known mime-type. Is there a way to proxy (create a passthrough for开发者_高级运维) these urls and strip this header from my request. I want to avoid serving the mp3 myself but I don't want to trigger a download.
Technically it is entirely possible that you could request the file from the server and connect that incoming data to an output stream response in your view, thereby allowing you to control the headers that your client's browser receives so that it does not ask them to save the file.
I'm going to recommend against this though for a couple of reasons.
- You mentioned you didn't want to serve the files yourself. Technically you are serving the file in this case, you just aren't storing it.
- This can be fairly expensive resource wise. Especially network bandwidth. Every mp3 file you share with your user is going to be a sort of double-ding for you. You are going to be both downloading and uploading that entire file, every time. You could cache the mp3 file once it's been requested, but then you aren't just serving the file, you're storing it as well.
- The file source likely does not want you to do this and could send you a cease and desist letter if they catch wind of it. If they provide a mechanism for you to share their media on your site, they usually have Terms and Conditions that you cannot circumvent that.
I don't think it's possible. It should already be entirely up to the browser. For example Opera asks user weather to open it or download.
You could embed them in your site using their Embeded Code.
EDIT: Nope you can't even use the link provided by the header since they've worked around hotlinking. Each download is associated to the browser/session so you can't store the real url for the mp3 and link to that.
精彩评论