【问题标题】:Best practice to upload file to cdn while developing mobile application?开发移动应用程序时将文件上传到 CDN 的最佳实践?
【发布时间】:2016-05-08 02:07:45
【问题描述】:

我正在制作移动应用程序。我使用 Azure 移动服务作为后端服务来构建移动应用程序。在移动应用程序中,我必须将图像上传到天蓝色云存储。我可以通过两种方法来做。

  1. 从客户端应用上传文件

  2. 通过发送字节数组或base64字符串文件到服务器上传 服务器会将该文件上传给他们

我认为第一种方法很好,因为它直接上传文件而不是去服务器并再次推送到天蓝色存储。

我不知道哪种方法好。任何帮助都会得到帮助

【问题讨论】:

  • 您的标题询问了 CDN,但您的问题根本没有提及 CDN。另外:不清楚您在第 1 项中指的是什么:您是否询问您的客户端应用程序直接连接到 Azure 存储并上传到 Azure 存储?无论如何:询问哪种方法是“最好的”是一个离题的问题,因为它只会让你发表意见。而且,就目前而言,这个问题非常广泛。在此问题结束之前,请将您的问题编辑为特定的编程问题(并澄清我提出的问题)。
  • @DavidMakogon ,如果你读到问题,我会提到天蓝色的云存储是 CDN :)

标签: android azure mobile azure-mobile-services azure-blob-storage


【解决方案1】:

正如 David 所提到的,这个问题有点宽泛,与 CDN 无关,但在 Azure 移动服务的范围内,我会推荐选项 #1,因为它提供了一些好处,包括(但不限于):

  • 最大限度地减少移动服务的负载,可能避免扩展服务以跟上文件管理的需要
  • 能够使用旨在处理来自客户端的 blob 管理的存储 API,并避免在您的服务中实施和维护类似的 API(包括支持恢复上传/下载和其他适用于移动应用的优秀功能)
  • 能够(更轻松地)使用 Azure 存储提供的不同地理位置让客户端使用最近的位置上传和下载文件。

名单还在继续……

建议仍然是从您的服务中公开 API,以允许客户端请求 SAS 令牌,以便提供对存储的经过身份验证的访问。这种方法类似于移动应用文件管理 SDK 使用的方法。

我希望这会有所帮助!

【讨论】:

    【解决方案2】:

    您可以使用 Filestack 等第三方服务来处理文件的上传和存储以及 CDN 交付。

    您可以使用pick and store method 将文件直接上传到 Azure:

    filepicker.pickAndStore(
      {
        mimetype:"image/*",
        multiple: true
      },
      {
        location:"azure"
      },
      function(Blobs){
        console.log(JSON.stringify(Blobs));
      },
      function(error){
    //  console.log(JSON.stringify(error)); - print errors to console
      },
      function(progress){
        console.log(JSON.stringify(progress));
      }
    );
    

    然后每个上传的文件都会生成一个 CDN url,您可以使用它在应用程序中传递图像。不确定您是否已经研究过要使用的 CDN,但 Filestack 与 Fastly 合作,因此您拥有他们的所有功能,这是最好的功能之一。

    【讨论】:

      【解决方案3】:

      我使用 Cloudinary 是一个用于 Web 或移动开发的图像后端,将图像上传到 CDN 真的很容易。

      【讨论】:

      • 这远非“最佳实践”——这是对第 3 方服务的推广。并基于意见。并且没有回答问题。
      猜你喜欢
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多