gpt4 book ai didi

ruby-on-rails - rails : Best way to allow users to upload images to either a Dropbox linked folder or "our" storage on Amazon S3

转载 作者:行者123 更新时间:2023-12-04 08:51:03 30 4
gpt4 key购买 nike

我正在开发一个用户加入“流”的项目。在流设置期间,创建流的人(流创建者)可以选择:

  • 将成员(member)添加到流中的所有照片上传到我们的托管解决方案 (S3)
  • 将成员添加到流的所有照片上传到流创建者自己的 Dropbox 验证文件夹

  • 将来我想添加更多存储提供商(例如 Drive、Onesky 等)

    关于如何解决这个问题,我有几个不同的问题。
  • 照片数据库中的结构应该是什么?我目前只有 photo_url,但从数据角度来看,使用预签名的 url 以及上传照片的方式不同(s3、dropbox 等)时,这并不容易管理
  • 每个存储提供者的访问 token 应该如何存储?请记住,只有流创建者的 access_token 将被存储,并且流中的每个人都将在上传照片时共享该 token
  • 将来我会添加 iOS 和 Web 客户端,它们将直接上传到存储提供程序并绕过服务器以避免服务器负载过重
  • 最佳答案

    就数据库存储而言,您的应用程序应该根据您向用户和流呈现的界面来规定结构。
    如果您让用户上传照片但他们无法选择 URI,并且您在流中没有任何层次结构,那么我建议您只在主照片表中存储一个 ID 和一个 stream_id。

    所以至少你可能有一些看起来像

    create table photos(id integer primary key, stream_id integer references streams(id) not null);

    但您可能还需要独立于存储的描述和其他信息。

    流表将包含有关流的所有通用信息,但会有 polymorphic association到依赖于流类型的类。因此,您可以使用该关联根据使用的实际流来获取 S3Stream 或 DropBoxStream 的实例。
    该实例(也是一个 ActiveRecord 资源)可以存储访问 key ,以及诸如 dropbox 之类的东西、文件夹的路径等。此外,该实例可以提供用于构造给定 Photo 对象的 URI 的方法。
    如果特定技术需要缓存签名的 URI,那么说 S3Stream 对象可以引用 URI 被签名的 S3SignedUrl 模型。
    如果事实证明 DropBox 和 S3 之间的签名 URL 代码相似,那么您可能只有一个 SignedUrl 模型。

    当您设计 ios 和 android 客户端时,至关重要的是它们不能访问流所有者的访问 token 。相反,您需要在服务器应用程序中进行所有签名。您不希望设备受到损害而导致暴露访问 token ,从而产生计费问题和隐私暴露。
    希望这可以帮助。

    关于ruby-on-rails - rails : Best way to allow users to upload images to either a Dropbox linked folder or "our" storage on Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43806154/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com