关于 s3

2017-09-23 19:11:36 +08:00
 itertools

最近项目中有这样的需求:

PS: 服务端需要保存图片。 之前都是通过图片,保存在服务器特定目录下,然后把路径传递给处理函数。

现在由于处理图片的服务器要扩展为多台( api 服务器还是一台),所以就想把图片存放在 s3 上面,然后,把 s3 上面图片对应的 url 传递给处理函数。但是,现在我的做法是:

问题: 改为 s3 存放图片之后,响应时间相差很多,有什么方法可以优化?或者是我的做法欠妥还有更好的方法?

2787 次点击
所在节点    Python
6 条回复
guyskk0x0
2017-09-23 20:05:44 +08:00
1. s3 支持客户端直传吗?服务端发个 token 给调用方,调用方自己上传到 s3,我记得七牛支持这个。
2. 同理,s3 支持直接下载并保存图片吗,这样就不用服务端重复下载了,七牛支持这个,s3 应该也支持。
3. 加带宽吧
whileFalse
2017-09-23 20:37:35 +08:00
s3 可以客户端直传。
derek80
2017-09-23 20:39:58 +08:00
楼上的 1,2 可以用 STS 发 token 解决。
itertools
2017-09-23 20:42:41 +08:00
@guyskk0x0 第二点可行,但是第一点有个疑点,比如:我这个 api 可能给合作方或者以后开放给更多人。这时候,调用方就不可控,可能就不愿意自己调用 s3 相关 api (通过 token )上传。
calease
2017-09-24 09:17:41 +08:00
s3 有 pre-signed url
调用你的 api 得到 pre-signed url 然后调用方直接上传,
通过 s3 notification 发通知给 lambda 处理上传结果。
guyskk0x0
2017-09-24 12:21:04 +08:00
@itertools token 有效期很短+只能用一次,颁发 token 时验证调用方

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/393096

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX