【问题标题】:How to save faker images to local folder using JavaScript?如何使用 JavaScript 将伪造的图像保存到本地文件夹?
【发布时间】:2020-05-31 05:52:15
【问题描述】:

我正在学习后端,我想使用 faker 库在我的本地文件夹中生成大约 1000 个随机用户图像的 jpg 文件。

脚本名称:dummyImages.js

const faker = require('faker');
const makeFakeImage = function() {
  return faker.image.people();
}
makeFakeImage();

如果我使用命令运行此脚本

节点 dummyImages.js

我希望收到一个 URL 链接,我可以将图像文件保存并下载到我的本地文件夹。但是,此过程过于手动,不是最佳实践。有人可以帮我修改我的脚本,以便它可以将 1000 个伪造图像文件自动保存到本地文件夹中,其中 jpg 文件名从“1”到“1000”(例如:1.jpg 2.jpg 等。 .). 我的意图是之后将该文件夹内的所有文件插入 AWS S3 并在 React 上使用它们。

【问题讨论】:

  • 顺便说一句,我打算使用AWS S3在浏览器上加载图像而不是通过faker加载图像的原因是因为我正在学习优化的概念。当我尝试通过faker加载图像时,图像需要几秒钟才能出现,这不是我想要的。仅供参考。
  • 你已经尝试了什么? Stack 不是代码编写服务。
  • 这与faker具体无关,它只是为您生成一个URL。您应该研究如何在给定其 url 时将文件下载到本地文件夹(或者更确切地说,直接下载到 S3?)。已经有很多教程和 QA 帖子。
  • 对不起,如果我的问题让您感到困惑。我检查了教程,没有一个是在 javascript 中的,这就是我问这个问题的原因。我在下面发布了一个答案,您可以看到它与 faker 库的关系。一个人所要做的就是将存储在该特定文件夹中的 jpg 文件拖放到 S3

标签: javascript amazon-s3 jpeg faker


【解决方案1】:

/* eslint-disable no-plusplus */
const faker = require('faker');
const axios = require('axios');
const path = require('path');
const fs = require('fs');

const url = [];
// 100 fake avatar url from fakter
for (let i = 0; i < 100; i++) {
  url.push(faker.image.avatar());
}


// download 100 user photoes to local image folder
for (let i = 0; i < url.length; i++) {
  // path for image storage
  const imagePath = path.join(__dirname, '../image', `${i}.jpg`);
  axios({
    method: 'get',
    url: url[i],
    responseType: 'stream',
  })
    .then((response) => {
      response.data.pipe(fs.createWriteStream(imagePath));
    });
}

以下脚本有效。只要确保我必须将正确的依赖项 npm 安装到 package.json 并且引用“image”的文件夹存在

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2013-08-25
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多