S3 不支持移动 API 是出于什么考虑的?

2022-12-10 07:07:12 +08:00
 edis0n0
2811 次点击
所在节点    云计算
13 条回复
flyingdog
2022-12-10 07:13:53 +08:00
> 移动 API

什么是移动 API 啊?
wangyu17455
2022-12-10 07:23:18 +08:00
@flyingdog 移动文件
needpp
2022-12-10 07:41:06 +08:00
盲猜应该是在 移动端比如 ios android 等系统中使用的 api 吧, 但是 s3 不就是一个基于 http 的应用层协议吗? 随便找个合适的语言封装一下就可以了?
crysislinux
2022-12-10 08:59:54 +08:00
大概是 s3 本来就没有移动这个概念,看起来你可以保存路径,但那实际上并不是目录,本质上跟 kv 数据路类似。
8520ccc
2022-12-10 09:13:08 +08:00
有 copyObject 再 delete 就行
wanguorui123
2022-12-10 11:06:11 +08:00
涉及到锁吧
gfwuzer
2022-12-10 13:34:17 +08:00
s3 是分布式的,移动很难做成原子操作。类比移动文件跨硬盘也只能 copy 。
flyingdog
2022-12-12 03:36:15 +08:00
@wanguorui123 不涉及到锁。S3 整个系统是无锁的。
flyingdog
2022-12-12 03:39:06 +08:00
上面有人的解释是对的。S3 的目录看起来是目录,一个 object ,底层存储是分布在很多的 host 上面的,所以没有移动的概念。比如说,分布式的 MySQL 里面也没有移动的概念对吧?你只能复制再删除,但是不是原子性的,需要自己加锁之类的。
wanguorui123
2022-12-12 09:26:38 +08:00
@flyingdog 没有锁不好做移动操作
flyingdog
2022-12-12 09:55:20 +08:00
@wanguorui123 对,如果 LZ 想自己实现这种 copy+delete 的操作,是需要锁的。
但我上面的意思是,S3 内部实现是无锁的。用了一些 Quorum 之类的东西。
Pythondr
2022-12-12 12:14:30 +08:00
无它,S3 不是一个文件系统。
opengps
2022-12-14 15:28:40 +08:00
文件存储是平行结构,不存在文件夹,所以没有你要的“移动文件”,你需要"下载+删除+上传"来近似代替移动文件的概念

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

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

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

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

© 2021 V2EX