【问题标题】:Strapi Upload Plugin: How to upload a remote file in a cron jobStrapi 上传插件:如何在 cron 作业中上传远程文件
【发布时间】:2019-12-19 01:01:34
【问题描述】:

我正在使用带有 s3 作为提供程序的strapi 上传插件。在我的strapi实例(/upload)上点击上传api端点时效果很好。但是,我在我们的 repo 中有一个 cron 作业,它检查 s3 存储桶中的图像并上传它们。有什么方法可以使用全局strapi对象调用上传插件,而不必在cron作业中发出http请求?后者似乎有点奇怪,因为 cron 作业与strapi 在同一台服务器上运行。

在我的 config/functions/cron.js 文件中,我目前有这个:

        const imageBuffer = await fetch(imageURL).then((response) => response.buffer());
        const formData = new FormData();
        formData.append('files', imageBuffer, { filename: imageURL.split('/').pop() });
        const uploadResult = await fetch('xxxxx/upload', {
            method: 'POST',
            body: formData
        }).then((response) => response.json());

我更愿意做一些简单的事情,比如:

      const imageBuffer = await fetch(imageURL).then((response) => response.buffer());
      await strapi.plugins.upload(imageBuffer)

我一直在尝试对插件在其controller file 中的功能进行逆向工程,但这似乎也不理想。

我们将不胜感激 Strapi 专家的任何帮助!

【问题讨论】:

    标签: javascript node.js strapi


    【解决方案1】:

    我找到了解决方案,它是:

      return strapi.plugins['upload'].services.upload.upload(
        { data: {fileInfo: {}}, files: {
          path: path.resolve("public/uploads" + filename), // Put your file path
          name: "asd.png",
          type: 'image/png'
        }}
      )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-15
      • 2010-11-06
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 2016-04-02
      相关资源
      最近更新 更多