wong2
wong2

Reputation: 35750

How to proxy an image in node express?

I have this image from Filepicker.io: https://www.filepicker.io/api/file/9H-1AxgZTwqct8tjkmkZ

But when I open it in the browser, it will download the file directly, I thought that's because the response header or something, so I'm wondering how to proxy it so that I can view it in browser like other images, like this one : https://distilleryimage1.s3.amazonaws.com/84d490a4071811e285a622000a1d039f_5.jpg

Upvotes: 0

Views: 1890

Answers (3)

Jonathan Ong
Jonathan Ong

Reputation: 20325

Github uses https://github.com/atmos/camo to proxy images for SSL. You can try using it. You can mount it on your express app:

var camo = require('./node_modules/server.js') // you have to strip the server.listen(port) part
app.use('/proxy', camo)

Upvotes: 0

Benjamin Manns
Benjamin Manns

Reputation: 9148

While vinayr's answer is correct, you can avoid using a proxy altogether by appending ?dl=false to the end of your FilePicker URI.

For example: https://www.filepicker.io/api/file/9H-1AxgZTwqct8tjkmkZ?dl=false

There are also a number of other in the FilePicker Documentation, particularly the "Working with FPUrls" section and the "Retrieving the file" and "Image Conversion" subsections.

Upvotes: 0

vinayr
vinayr

Reputation: 11244

curl -si https://www.filepicker.io/api/file/9H-1AxgZTwqct8tjkmkZ | head
HTTP/1.1 200 OK
Access-Control-Allow-Headers: CONTENT-TYPE, X-NO-STREAM
Access-Control-Allow-Methods: DELETE, GET, HEAD, POST, PUT
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 21600
Cache-Control: public, max-age=315360000, no-transform
Content-Disposition: attachment; filename="中秋福利.jpg"
Content-Type: image/jpeg
Date: Fri, 28 Sep 2012 08:21:45 GMT
Server: gunicorn/0.14.6

Content-Disposition is set to attachment. If you proxy it then remove that header altogether or set it to inline.

Upvotes: 1

Related Questions