Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- let AWS = require('aws-sdk');
- let request = require('request');
- AWS.config.loadFromPath('config.json');
- let s3 = new AWS.S3();
- //const throttledQueue = require('throttled-queue');
- //let throttle = throttledQueue(10, 5000);
- let f = require('f-throttle');
- require('dotenv').config();
- let knex = require('knex')({
- client: 'mysql2',
- connection: {
- host: process.env.DB_HOST,
- user: process.env.DB_USER,
- password: process.env.DB_PASS,
- database: 'zaply'
- },
- debug: false
- });
- function put_from_url(url, bucket, key, callback) {
- request({
- agent: false,
- url: url,
- encoding: null
- }, function(err, res, body) {
- if (err){
- console.log(err);
- return callback(err, res);
- }
- s3.putObject({
- Bucket: bucket,
- Key: key,
- ContentType: res.headers['content-type'],
- ContentLength: res.headers['content-length'],
- Body: body // buffer
- }, callback);
- })
- }
- let { promisify } = require('util');
- let promise_to_put_from_url = promisify(put_from_url);
- knex.select('products.supermarket', 'products.name as name', 'products.image_medium', 'supermarkets.base_url_product', 'supermarkets.base_url_image').table('products')
- .join('supermarkets', 'supermarkets.id', '=', 'products.supermarket')
- .then(function(collection) {
- for (let c in collection) {
- //throttle(function() {
- // console.log('Imagem: ' + collection[c].name + ' Núm: ' + [c]);
- let ft = f(50, () => promise_to_put_from_url(
- collection[c].base_url_image + collection[c].image_medium,
- 'zaply-product-images',
- collection[c].supermarket + '-' + collection[c].name.normalize('NFD').replace(/[\u0300-\u036f]/g, '').replace(/[^\w.]/g, '-') + '.jpg',
- function(err, res) {
- if(err) {
- console.log('Erro: ' + err);
- }
- }
- ));
- //});
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement