Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
edis0n0
V2EX  ›  云计算

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

  •  
  •   edis0n0 · Dec 10, 2022 · 3805 views
    This topic created in 1249 days ago, the information mentioned may be changed or developed.
    13 replies    2022-12-14 15:28:40 +08:00
    flyingdog
        1
    flyingdog  
       Dec 10, 2022
    > 移动 API

    什么是移动 API 啊?
    wangyu17455
        2
    wangyu17455  
       Dec 10, 2022
    @flyingdog 移动文件
    needpp
        3
    needpp  
       Dec 10, 2022
    盲猜应该是在 移动端比如 ios android 等系统中使用的 api 吧, 但是 s3 不就是一个基于 http 的应用层协议吗? 随便找个合适的语言封装一下就可以了?
    crysislinux
        4
    crysislinux  
       Dec 10, 2022 via Android
    大概是 s3 本来就没有移动这个概念,看起来你可以保存路径,但那实际上并不是目录,本质上跟 kv 数据路类似。
    8520ccc
        5
    8520ccc  
       Dec 10, 2022 via iPhone
    有 copyObject 再 delete 就行
    wanguorui123
        6
    wanguorui123  
       Dec 10, 2022
    涉及到锁吧
    gfwuzer
        7
    gfwuzer  
       Dec 10, 2022
    s3 是分布式的,移动很难做成原子操作。类比移动文件跨硬盘也只能 copy 。
    flyingdog
        8
    flyingdog  
       Dec 12, 2022
    @wanguorui123 不涉及到锁。S3 整个系统是无锁的。
    flyingdog
        9
    flyingdog  
       Dec 12, 2022
    上面有人的解释是对的。S3 的目录看起来是目录,一个 object ,底层存储是分布在很多的 host 上面的,所以没有移动的概念。比如说,分布式的 MySQL 里面也没有移动的概念对吧?你只能复制再删除,但是不是原子性的,需要自己加锁之类的。
    wanguorui123
        10
    wanguorui123  
       Dec 12, 2022
    @flyingdog 没有锁不好做移动操作
    flyingdog
        11
    flyingdog  
       Dec 12, 2022
    @wanguorui123 对,如果 LZ 想自己实现这种 copy+delete 的操作,是需要锁的。
    但我上面的意思是,S3 内部实现是无锁的。用了一些 Quorum 之类的东西。
    Pythondr
        12
    Pythondr  
       Dec 12, 2022
    无它,S3 不是一个文件系统。
    opengps
        13
    opengps  
       Dec 14, 2022
    文件存储是平行结构,不存在文件夹,所以没有你要的“移动文件”,你需要"下载+删除+上传"来近似代替移动文件的概念
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   944 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 20:52 · PVG 04:52 · LAX 13:52 · JFK 16:52
    ♥ Do have faith in what you're doing.