V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Yiso1573
V2EX  ›  程序员

有对阿里云 OSS 比较熟悉的同学吗?请教个上传(或者叫数据迁移)的问题

  •  
  •   Yiso1573 · Feb 20, 2020 · 4957 views
    This topic created in 2258 days ago, the information mentioned may be changed or developed.

    目的是要把一批图片(几百万张)上传到 oss 上去
    图片在客户的服务器(境外)上,客户只提供了图片的下载链接
    想问有什么好的方式搬到我们自己的 OSS 上去吗?

    目前在阿里上了解到的是有个 HTTP HTTPS 源迁移 可以实现,但是有些繁琐。

    Supplement 1  ·  Feb 20, 2020

    感谢各位同学的建议,收集到的方法大概就三种:

    1.拉取到本地再上传

    这个方式我一开始有尝试,但是客户的服务器在境外的原因导致下载速度慢和网络中断的原因,我就暂时放弃了这个方法 (没有可以用的代理)

    2.和客户沟通,copy到硬盘

    估计他们也麻烦,是个中间商。沟通反馈也不是特别积极

    3.直接将网络资源迁移至OSS https://help.aliyun.com/document_detail/95134.html

    这个是我目前在尝试的方式,类似于离线下载,在公测需要白名单审核。还是不行的话就只有吭哧吭哧走第一种方式咯。

    20 replies    2020-02-21 14:02:05 +08:00
    opengps
        1
    opengps  
       Feb 20, 2020
    临时打开公共写入权限。(选项叫:公共读写)
    可以写代码遍历上传
    还有个 OSS 客户端工具你可以参考下,我没试过最大能同时选择多少文件
    fub2020
        2
    fub2020  
       Feb 20, 2020 via iPhone
    换个思路,和客户商量 UPS 一个硬盘进来
    smy14520
        3
    smy14520  
       Feb 20, 2020
    oss 有个离线下载吧, 每次 5000 个
    Kamitora
        4
    Kamitora  
       Feb 20, 2020
    用 OSS SDK 写个程序上传。
    realpg
        5
    realpg  
    PRO
       Feb 20, 2020
    源文件在自有服务器上
    还是在第三方存储服务器上?
    cs3230524
        6
    cs3230524  
       Feb 20, 2020
    写个程序自己传啊,爬虫会不会
    yuanhego
        7
    yuanhego  
       Feb 20, 2020
    1.如果能接受 ossutil 直接上传的速度就直接搞。
    2.其他办法可以考虑先传到 AWS S3,然后再迁移回 OSS。
    3.或者和客户沟通,直接从他们服务器 copy 到你们硬盘,算单张图片平均 2MB 的话,500w 张大概 10TB 左右,1 ~ 2 块硬盘直接存储好,带回国内找个阿里云 OSS 同区域的机房,选择直接用 ossutil 上传。
    4.其他方案,看有木有阿里云的能够有更好方案了。
    optional
        8
    optional  
       Feb 20, 2020 via iPhone
    oss 有 命令行工具,同步上传都有。
    但是有时候可能不太方便,比如中断后重新开始,不如先把文件列表导出 txt 然后分批上传
    yuanhego
        9
    yuanhego  
       Feb 20, 2020
    ossutil 可能不适合,就自己写程序转储吧,哈哈
    Carbule
        10
    Carbule  
       Feb 20, 2020
    之前有遇到同样的问题,然后选择自己根据用 oss sdk 写了个程序上传
    wafm
        11
    wafm  
       Feb 20, 2020
    老老实实做个 API 上传吧 我也迁移过 没别的办法
    liaoberlin
        12
    liaoberlin  
       Feb 20, 2020 via iPhone
    买一台阿里云的机器 好像是要跟 OSS 同一地区的 因为不同地区的属于外网流量是需要钱的 然后写一个脚本在阿里云机器上运行 一边从客户服务器下载一边上传到 OSS 各种需要的 SDK 都有的
    mangoDB
        13
    mangoDB  
       Feb 20, 2020
    考虑一下 BOS ?有个数据迁移的功能,只需要提供资源的 URL 即可。
    duhongle
        14
    duhongle  
       Feb 20, 2020
    是不是可以吧 OSS 挂载到 ECS 中,然后在 ECS 中写个爬虫 批量获取,存到挂载盘中。。。
    oss 支持挂载到虚拟主机及本地。。。
    OSSFS 将 OSS bucket 挂载到本地文件系统及注意事项
    https://yq.aliyun.com/articles/386980?spm=5176.10695662.1996646101.searchclickresult.6be73e7bAKvfOh&aly_as=omox5VVT
    RyanOne
        15
    RyanOne  
       Feb 20, 2020
    楼上+1 , oss 可以直接挂载 然后写个 shell 拷贝过来
    PEPEXXX
        16
    PEPEXXX  
       Feb 21, 2020 via iPhone
    阿里云有个数据迁移服务,可以从任意源迁入 OSS,应该能满足你这个需求。把数据源配置好之后启动任务,放一个晚上差不多就好了,主要看你数据量有多少。我们用过好几次了,方便并且也没啥毛病,重点是免费,一毛不要。唯一的缺点就是要提工单开通一下。
    ganymedenil590
        17
    ganymedenil590  
       Feb 21, 2020 via Android
    弄台香港的机器自己写一个转存工具 反正我是这么干 8T 数据的
    hosaos
        18
    hosaos  
       Feb 21, 2020
    最好就是买阿里云香港服务器去下载境外图片,然后传 OSS,这样是最快的
    DavidNineRoc
        19
    DavidNineRoc  
       Feb 21, 2020
    OSS 貌似有一个 fetch 功能,你把 URL 提供,会自动去拉取。
    DavidNineRoc
        20
    DavidNineRoc  
       Feb 21, 2020
    看错了,是七牛才有
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4003 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 197ms · UTC 10:26 · PVG 18:26 · LAX 03:26 · JFK 06:26
    ♥ Do have faith in what you're doing.