代码之家  ›  专栏  ›  技术社区  ›  Emo

弹弓无法上传到s3

  •  0
  • Emo  · 技术社区  · 7 年前

    Slingshot包与Meteor一起使用,直接从客户端将图像上传到S3。与我在其他已批准运行的项目中使用的代码相同。甚至是 在我的本地设置中,我可以将图像上载到云中,但不能使用它的已部署版本,这是相同的 . 错误如下:

    Failed to upload file to cloud storage [Bad Request - 400]

    the region 'us-east-1' is wrong; expecting 'eu-central-1' (但它不知道在哪里…)

    有什么想法吗?

    这是流星弹弓指令的初始化:

    const s3Settings = Meteor.settings.private.S3settings;
    Slingshot.createDirective("userProfileImages", Slingshot.S3Storage, {
      AWSAccessKeyId: s3Settings.AWSAccessKeyId,
      AWSSecretAccessKey: s3Settings.AWSSecretAccessKey,
      bucket: s3Settings.AWSBucket,
      region: s3Settings.AWSRegion,
      acl: "public-read",
    
      authorize: function () {
        if (!this.userId) {
          const message = "Please login before posting images";
          throw new Meteor.Error("Login Required", message);
        }
        return true;
      },
    
      key: function (file) {
        const user = Meteor.users.findOne(this.userId);
        return user.username + "/" + file.name;
      }
    });
    

    这是我的Amazon S3 Cors配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>HEAD</AllowedMethod>
        <MaxAgeSeconds>10000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    </CORSConfiguration>
    

    我没有酒桶政策。 访问控制全部是公共的。

    感谢帮助。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Emo    7 年前

    问题是我。我在设置中将区域定义为 AWSregion ( r ,而我称之为 AWSRegion ( R )在我的代码中设置。所以它没有定义,也不起作用。

    解决办法是确保案例输入正确。