我正在开发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。
答案 0 :(得分:0)
这是AWS S3的权限问题,因为您可以上传但不能删除。您是否创建了AWS IAM用户来生成访问密钥和密钥?如果是这样,你可以粘贴你的政策吗?