【问题标题】:what is the best (or most optimal) practice for uploading images to online storage with iOS?使用 iOS 将图像上传到在线存储的最佳(或最佳)做法是什么?
【发布时间】:2018-07-03 20:29:59
【问题描述】:

我目前正在制作一个需要图片上传功能的 iOS 应用。我正在使用 Firebase 进行图像存储,并且我正在使用我为其他所有内容(例如身份验证、用户帐户等)构建的 ruby​​ on rails API。图像上传此时在应用程序中工作,但是,它有点慢(这令人震惊,因为我是唯一一个使用它的人。这不像是有一堆 HTTP 请求一次发送到 API 或 firebase,只是我在测试它)。这就是我目前处理上传的方式:

  1. 用户选择要上传的照片。
  2. 照片被转换为 png 字符串表示并被发送到 firebase 存储
  3. 从 firebase 获取照片的下载 URL
  4. 然后将该 URL 发送到 API 并分配给该特定用户的 profile_image 属性。

这就完成了。所以,当用户想要看到那张照片时:

  1. 向 API 发出获取请求,该 API 会响应用户的所有可共享属性(例如用户名等),以及该图像的 URL。
  2. 然后应用“下载”该图像并将其放入 UIImageView 中。

我用来实现这一点的一些可可豆荚:

  1. 阿拉莫菲尔
  2. SwiftyJSON
  3. Firebase 存储
  4. SDWebImage

我的问题是,在我的情况下,这是否是处理图片上传的好方法。它有点慢,但我不知道这是因为我正在为我的 API 使用 Heroku 的免费网络托管服务,还是因为我上传图像和检索它们的方式过于复杂并且可以简化。

【问题讨论】:

  • 您阅读过 ActiveStorage 文档吗? edgeguides.rubyonrails.org/active_storage_overview.html
  • 嘿,谢谢,这看起来很有希望!
  • 有点慢是非常主观的,可能是由编码问题、文件大小、互联网速度和许多其他因素引起的。如果使用 FirebaseStorage 很慢,则很可能使用其他平台更慢(Firebase 非常快)。我认为您最好的选择是根据图像大小和互联网速度与花费的时间(大致)计算应该花费多长时间。

标签: ios ruby-on-rails swift firebase photos


【解决方案1】:

如果您从相机中拍摄高分辨率(11 兆像素)的图像,并且您唯一的用途是在手机/iPad 上显示所述图像(即不将它们打印到广告牌上),然后调整图像大小在将其发送到 Firebase 并使用小得多的图像之前,它会显着提高性能。

您的延迟可能是由于您的文件大小。

如果您需要大文件大小,请实施缓存!

【讨论】:

  • 虽然我同意这个问题很可能是由文件大小引起的,但缓存对文件大小有何帮助?数据仍然必须从 A 点传输到 B 点,所以你能扩展一下你的意思吗?
  • 我什至没有想到文件大小我会尝试降低图像的分辨率
猜你喜欢
  • 2011-03-01
  • 1970-01-01
  • 2018-01-31
  • 2013-05-23
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
相关资源
最近更新 更多