android - 使用七牛 private bucket 时,大家是如何设计图片下载的?
迷茫
迷茫 2017-04-17 14:52:26
0
0
237

开发中的 App 使用七牛保存用户上传的图片,为了保证用户图片的隐私和安全,将用户上传的图片保存在 private bucket 中。为方便用户查看,减少加载时间和节省流量,每一张原始图片会生成缩略图(Thumb)、放大图(Zoom)和原始图(Original),将 Original 保存在七牛,Thumb 和 Zoom 使用图片处理 API 动态生成。

图片上传时使用 Call Back 机制向业务服务写入文件元数据,当用户查看图片时再根据 bucket 和 key 生成 download url。由于使用了 private bucket,导致每次生成的 download url 是不同的。而且,如果用户在一段时间内没有查看 Zoom 图片,只能重新生成 download url 或者延长 expire 时间。

我们使用的策略是:

  • 业务服务同时返回 thumb url、zoom url 和 original url。
  • 由 App 根据页面的业务决定使用 thumb/zoom/original。
  • 延长 expire 尽量避免出现链接不可用的情况。
  • 修改 App 的图片缓存策略(不能直接使用 download url 缓存)

原计划在 App 端生成 upload token 和 download url,减少与业务服务的交互。可是,刚刚看官方文档,因为安全的原因不推荐这样,建议每次都从服务端取 token。


我的问题是:

  1. 生成 thumb/zoom/original url 导致业务服务返回的 JSON 过大,每个 download url 至少有 170+ 个字符。
  2. 延长 expire 可能会降低图片的私密性。
  3. App 持有 Access Key 和 Secret Key 的安全隐患太大。

大家是怎么「平衡」这个问题的?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(0)
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!