【问题标题】:Use server to download image and serve to frontend使用服务器下载图像并服务到前端
【发布时间】:2017-01-27 20:19:12
【问题描述】:

我在尝试从 S3 (Converting Image URL to base64 - CORS issue) 提取图像时遇到了 CORS 问题。

我在生成 PDF 文件时只使用了几秒钟的图像。有没有办法让 Meteor 下载图像并只投放几秒钟,这样我就可以解决 CORS 问题?

我不能让 Meteor 一直只提供图像,因为它们有很多,而且它们会根据不同的报告而变化。

【问题讨论】:

  • 为什么不解决您的 CORS 问题?如果它是你的桶,你可以控制它。您可以让您的 Node.js 应用代理图像并添加适当的标题,但解决根本问题会好得多。
  • 我试过了。我设置了AllowedOrigins 选项,但随机它只会在某些图像上失败(但对同一批次中的其他图像有效)

标签: node.js meteor amazon-s3


【解决方案1】:

我最终通过这样做解决了 CORS 问题:

import { request } from "meteor/froatsnook:request";

Meteor.methods({
    convertImage: function(imageUrl) {
      try {
        var result = request.getSync(imageUrl, {encoding: null});
        return 'data:image/png;base64,' + new Buffer(result.body).toString('base64');
      } catch(e) {
        throw new Meteor.Error("cant-download", "Error: Can't download image.");
      }
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多