Как перевести изображение с другого сайта (скрытие исходного URL) - PullRequest
1 голос
/ 26 октября 2019

У меня есть ссылка на изображение, например this или that .

Я пытаюсь перевести это изображение с URL другого источника на какую-либо ссылкуFe http(s)://examplewebsite.com/john. Таким образом, это не должно быть перенаправление, а скорее «показ» изображения по другой ссылке. Я пытался использовать express.static, но это не работает.

Заранее спасибо

1 Ответ

1 голос
/ 26 октября 2019

Если я правильно понимаю, у вас есть свой экспресс-сервер, и вы хотите включить в ответ посторонние изображения, скрывая URL источника

В простейшей форме каждый раз, когда кто-то запрашивает вашу страницу, вы получаете изображениеВы хотите, закодируйте его в base64 и включите этот base64 как src для img

const express = require('express')
const fetch = require('node-fetch')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  fetch('https://www.gravatar.com/avatar/fdb4d2674d818861be4a4139469ebe59?s=48&d=identicon&r=PG&f=1')
    .then(res => res.buffer())
    .then(buffer => {
      res.send(`
      <!doctype html>
      <html lang="en">
      <head>
      <meta charset="UTF-8">
         <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
             <meta http-equiv="X-UA-Compatible" content="ie=edge">
         <title>Document</title>
      </head>
      <body>
        <p>hello</p>
        <img src="data:image\png;base64, ${buffer.toString('base64')}" alt="image">
      </body>
      </html>
  `)
    })

})

app.listen(port, () => console.log(`Example app listening on port ${port}!`))

, в идеале вы должны создать отдельную конечную точку для этих изображений, а также кэшировать их (в памяти или на жестком диске). ) не перезагружать их каждый раз, когда они вам нужны

...