V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Yiso1573
V2EX  ›  程序员

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

  •  
  •   Yiso1573 · 2020-02-20 15:20:40 +08:00 · 4064 次点击
    这是一个创建于 1737 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    第 1 条附言  ·  2020-02-20 18:37:51 +08:00

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

    1.拉取到本地再上传

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

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

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

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

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

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