Rails回形针S3附件未删除(错误请求)

时间:2016-07-06 15:52:34

标签: ruby-on-rails amazon-web-services heroku amazon-s3 paperclip

我正在开发rails API。我使用paperclip gem在Amazon S3中存储图像。我只是使用自己的存储桶访问密钥,没有任何添加的策略。附件已正确上载并存储在S3中,但是当我销毁记录时,附件不会被删除。我还试图单独删除附件,这给出了以下错误:

[AWS S3 400 0.382023 0 retries] head_object(:bucket_name=>"my-bucket-name",:key=>"the/url/to/the/image.jpg") AWS::S3::Errors::BadRequest AWS::S3::Errors::BadRequest

在我的模特中:

has_attached_file :main_image
validates_attachment :main_image, presence: true,
                     content_type: { content_type: %w(image/jpeg image/png)},
                     size: { in: 0 .. 1.megabytes }

在我的配置中:

# Paperclip config
config.paperclip_defaults = {
    storage: :s3,
    s3_credentials: {
        bucket: ENV.fetch('AWS_S3_BUCKET'),
        access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
        secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
        s3_region: ENV.fetch('AWS_S3_REGION'),
    }
}

该应用程序正在Heroku上运行。这是权限问题吗?请注意,我使用aws-sdk gem版本1.66。

1 个答案:

答案 0 :(得分:0)

这是AWS S3的权限问题,因为您可以上传但不能删除。您是否创建了AWS IAM用户来生成访问密钥和密钥?如果是这样,你可以粘贴你的政策吗?