Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用iOS将图像上传到在线存储的最佳(或最佳)做法是什么?_Ios_Ruby On Rails_Swift_Firebase_Photos - Fatal编程技术网

使用iOS将图像上传到在线存储的最佳(或最佳)做法是什么?

使用iOS将图像上传到在线存储的最佳(或最佳)做法是什么?,ios,ruby-on-rails,swift,firebase,photos,Ios,Ruby On Rails,Swift,Firebase,Photos,我目前正在制作一个需要图像上传功能的iOS应用程序。我正在使用Firebase进行图像存储,我正在使用一个ruby on rails API,该API是我为其他一切(例如身份验证、用户帐户等)构建的。图像上传在应用程序中的这一点上是有效的,但是有点慢(这很令人担忧,因为我是唯一一个使用它的人。这不像一次有一堆HTTP请求被发送到API或firebase,只是我在测试它)。这就是我目前处理上传的方式: 用户选择要上载的照片 照片将转换为png字符串表示形式并发送到firebase存储 返回从fir

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

  • 用户选择要上载的照片
  • 照片将转换为png字符串表示形式并发送到firebase存储
  • 返回从firebase下载照片的URL
  • 然后,该URL被发送到API并分配给该特定用户的
    profile\u image
    属性
  • 这样就完成了。因此,当用户希望看到该照片时:

  • 向API发出一个get请求,该API会响应用户的所有可共享属性,比如用户名等等,还有该图像的URL
  • 然后应用程序“下载”该图像并将其放入UIImageView中
  • 我正在使用一些可可豆来实现这一点:

  • 阿拉莫菲尔
  • 迅捷JSON
  • 火基存储
  • SDWebImage

  • 我的问题是,在我的情况下,这是否是一种很好的上传图像的方式。速度有点慢,但我不知道这是因为我在API中使用了Heroku的免费网络托管服务,还是因为上传和检索图像的方式过于复杂,可以简化。

    如果您正在使用高分辨率(1100万像素)的照相机拍摄图像,您的唯一用途是在手机/iPad上显示所述图像(即不将其打印到广告牌上),然后在将图像发送到Firebase之前调整图像大小,并使用更小的图像,这将显著提高性能

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


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

    您阅读过ActiveStorage文档吗?嘿,谢谢,这看起来很有希望!稍微慢一点是非常主观的,可能是由编码问题、文件大小、internet速度和其他许多因素造成的。如果FirebaseStorage的速度慢,那么其他平台的速度可能会慢一些ms(Firebase的烟速非常快)。我认为你最好马上计算一下它需要多长时间(大致)基于图像大小和互联网速度以及所需时间。虽然我同意问题最有可能是由于文件大小,但缓存将如何帮助文件大小?数据仍然必须从A点到B点,因此您可以扩展您的意思吗?我甚至没有想到文件大小,我将尝试降低图像的分辨率