AWS S3无服务器映像大小调整的奇怪行为

问题描述 投票:1回答:1

我关注了这个博客https://aws.amazon.com/blogs/compute/resize-images-on-the-fly-with-amazon-s3-aws-lambda-and-amazon-api-gateway/

和这个回购https://github.com/awslabs/serverless-image-resizing

能够动态调整AWS S3上的图像大小。存储桶已成功创建。每当我将图像上传到存储桶时,我都可以按照博客中的说明从网址调整大小,一切正常。

问题是当从代码上传图像时(Ruby on Rails使用paperclip),然后可以正常访问图像,但是在尝试调整URL时(例如/100x200/photo.png)我在浏览器中以json的形式收到响应

{
"message": "Internal server error"
}

The response headers are: 

Request URL:<url>
Request Method:GET
Status Code:502 
Remote Address:<IP>
Referrer Policy:no-referrer-when-downgrade
Response Headers
content-length:36
content-type:application/json
date:Thu, 23 Nov 2017 09:59:24 GMT
status:502
via:1.1 <hash>.cloudfront.net (CloudFront)
x-amz-cf-id:<id>
x-amzn-requestid:<id>
x-cache:Error from cloudfront
Request Headers
:authority:<url>
:method:GET
:path:/prod?key=<path/to/photo>
:scheme:https
accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
accept-encoding:gzip, deflate, br
accept-language:en-US,en;q=0.9,de;q=0.8,ar;q=0.7
cache-control:max-age=0
upgrade-insecure-requests:1
user-agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36
Query String Parameters
view source
view URL encoded
key:<path/to/photo>

非常奇怪的是,在错误发生后,当我在桶中的任何位置再次手动上传相同的图像时,我再次尝试使用原始的调整大小网址,而不是导致问题的新上传的图像网址,它正常工作我可以调整到任何尺寸!

因此,手动上传似乎会触发与此图像数据相关的内容?我没有线索!

ruby-on-rails amazon-web-services amazon-s3 paperclip serverless
1个回答
2
投票

这里的错误是您直接在文件名之前放置所需的大小,您应该将它放在整个文件路径之前。

确保遵循以下模式:

HTTP:// $ BucketWebsiteHost / $大小/ $的ImagePath

例:

http://mybucketname.s3-website.mybucketregion.amazonaws.com/60x50/photos/attachments/000/002/002/original/image.jpg

© www.soinside.com 2019 - 2024. All rights reserved.