65 votes

Écriture d'image sur un serveur local

Mise à jour

La réponse acceptée était bonne l'année dernière mais aujourd'hui j'utiliserais le package que tout le monde utilise : https://github.com/mikeal/request


Original

Je tente de récupérer le logo de google et de l'enregistrer sur mon serveur avec node.js.

Voici ce que j'ai pour le moment et qui ne fonctionne pas :

        var options = {
            host: 'google.com',
            port: 80,
            path: '/images/logos/ps_logo2.png'
        };

        var request = http.get(options);

        request.on('response', function (res) {
            res.on('data', function (chunk) {
                fs.writeFile(dir+'image.png', chunk, function (err) {
                    if (err) throw err;
                    console.log('C'est enregistré !');
                });
            });
        });

Comment puis-je faire fonctionner cela ?

0voto

J'ai une solution plus facile en utilisant fs.readFileSync(./my_local_image_path.jpg)

Ceci est pour lire des images à partir de l'API Vision des Services Cognitifs Azure

const subscriptionKey = 'votre_clé_d'abonnement_azure';
const uriBase = // **DOIT changer votre emplacement (le mien est 'eastus')**
    'https://eastus.api.cognitive.microsoft.com/vision/v2.0/analyze';

// Paramètres de la requête.
const params = {
    'visualFeatures': 'Catégories,Description,Adulte,Visages',
    'maxCandidates': '2',
    'détails': 'Célébrités,Lieux',
    'langue': 'en'
};

const options = {
    uri: uriBase,
    qs: params,
    body: fs.readFileSync(./my_local_image_path.jpg),
    headers: {
        'Content-Type': 'application/octet-stream',
        'Ocp-Apim-Subscription-Key' : subscriptionKey
    }
};

request.post(options, (error, response, body) => {
if (error) {
    console.log('Erreur: ', error);
    return;
}
let jsonString = JSON.stringify(JSON.parse(body), null, '  ');
body = JSON.parse(body);
if (body.code) // err
{
    console.log("AZURE: " + body.message)
}

console.log('Réponse\n' + jsonString);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X