请教:云服务的下级用户上传文件只能自建对象存储吗?

2023-07-14 12:02:42 +08:00
 JarvisTang

我准备开发一个电商云服务,我的用户注册之后就可以拥有一个 C2C 电商平台。我的每个用户都有自己的 C2C 电商平台和一套 API ,可以用 API 自己发布客户端。

现在遇到一个技术难点,我的用户的平台的用户(他的用户)发布商品时,上传的图片和视频,我想统计在他的账号名下,以及被访问后的流量费也计在他名下。好像没有哪家云服务支持这样的场景,不好实现。

比如,我使用七牛云存储,我的用户所有资源都放在七牛某个存储桶,那么我的密钥是不能公开的,如果我的用户,他的客户端上传文件时,走 API 经过我的业务服务器,有点太费我的服务器资源了,直达七牛云又不能把我的密钥给他。

这时候,就要有一家云服务的存储桶支持无限子账号,而且仅有上传权限。

我研究了一下国内国外几家大的存储服务商,都不好实现这样的场景。

大家有遇到过这个问题,有经验吗?求指教,谢谢,谢谢,谢谢。

ps: 最好是国外的技术方案,因为这是一个出海项目。

1158 次点击
所在节点    程序员
15 条回复
nightwitch
2023-07-14 12:30:24 +08:00
允许用户直接往存储桶传的话待会来个搞事情的给你塞满儿童涩情和暴恐视频
JarvisTang
2023-07-14 12:38:27 +08:00
@nightwitch 我会做个计划任务,文件一天未被使用,就会清理。不做长时间存储。
xmumiffy
2023-07-14 13:01:54 +08:00
都有签发上传 token 的接口啊,token 还能指定储存的前缀甚至直接指定文件名
xmumiffy
2023-07-14 13:04:28 +08:00
star7th
2023-07-14 13:06:21 +08:00
要实现你这种场景,最佳做法还是用自己的服务器做一层中转。走 api 经过你的业务服务器是必须的。
JarvisTang
2023-07-14 15:13:37 +08:00
@xmumiffy 感谢,这个信息非常有用。
JarvisTang
2023-07-14 15:14:53 +08:00
@star7th 这个是最后考虑的方案了,无奈选择。走业务服务器,有点浪费我的服务器资源,用户量大了之后,要求有点高。
realpg
2023-07-14 15:50:44 +08:00
一个客户一个 bucket 啊,这不是基本操作
realpg
2023-07-14 15:51:36 +08:00
给密钥是什么鬼?你好像压根就没理解 s3 协议是怎么运作的,啃啃基础吧
JarvisTang
2023-07-14 16:06:51 +08:00
@realpg 你没理解我的想法,看看我的描述。

所有资产在一个存储桶(这样描述是硬性要求),客户端无权访问和删除操作,只能上传。
virusdefender
2023-07-14 16:07:37 +08:00
楼上正解,一个用户一个 bucket ,然后使用 sts 表单上传(阿里云的名词,其他的存储不清楚,不过应该都有类似的)
guoguobaba
2023-07-14 16:17:04 +08:00
minio 再包一层,minio gateway ,自己发放 ak ,设置权限就可以了。
版本要在 RELEASE.2022-10-24T18-35-07Z 之前就行了。
vmlinz
2023-07-14 16:25:30 +08:00
一个 bucket 下,可以给 object 打 tag ,或者每个用户有自己的子目录,再连接 bucket 的生命周期事件,每次上传的时候做一个记录,用来追踪用户的使用。但是流量费这个很难统计到具体用户,不一定所有平台都提供。

最好还是每个用户有自己的 bucket 最方便,供应商账户就可以自动工作。
realpg
2023-07-15 09:34:38 +08:00
@JarvisTang #10
所有资产在一个存储桶(这样描述是硬性要求)

-----
要么设计出这种架构的人滚,要么我滚
JarvisTang
2023-07-15 16:18:45 +08:00
@realpg 不要只看片面的描述,你不知道为什么这样设计的背景信息,不要在这上面断言。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/956721

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX