滴滴云Notebook如何使用存储在S3中的训练数据

滴滴云技术支持发表于:2020年03月29日 16:34:05更新于:2020年03月29日 17:03:34

目录

  1. 个人数据如何上传到S3

  2. 数据如何搬移到笔记本实例中(数据在外网服务器,数据在本地PC,数据在滴滴云对象存储S3 三种情况)

1、个人数据如何上传到S3

对于训练数据,建议用户通过滴滴云的对象存储S3(https://www.didiyun.com/production/s3.html)来搬移;滴滴云对象存储默认需要企业认证,个人用户在使用笔记本实例时如果需要,可以联系滴滴云小助手开通S3个人用户权限。

关于对象存储计费,使用等问题建议用户查看滴滴云对象存储的相关帮助文档:https://help.didiyun.com/hc/kb/section/1042689/

用户必须在完成滴滴云对象存储S3认证,并开通了相关权限后,方可以进行数据的上传下载

1.1 控制台上传

如果用户需要上传的数据小于512MB,可以直接在滴滴云S3控制台(https://app.didiyun.com/#/s3/)进行上传(如果数据大于512MB,也可以拆分成多个小文件在控制台上传);

1. 登录滴滴云S3控制台(https://app.didiyun.com/#/s3/)

0015e805d918cc09b3e946596e5495f

2. 点击创建对象存储按钮(如果已有对象存储桶,可以直接跳到步骤5)

0015e805ddeb91d8bd7fed3ab280d65

3. 填写合适的存储桶名称,如:notebook-test;选择广州一区,设置合适的访问权限,私有表示必须有accessKey/accessSecret才能访问,公有表示访问不用鉴权;点击 立即创建 按钮

0015e805e783c7c326bc86f71ce5cc6

4. 创建成功

0015e805eb442b43622498ab345b8e6

5. 点击需要上传数据的对象桶,进入详情页面;注意可以在这里看到外网访问域名

0015e805f013cea9e5ae3d3eace6bad

6. 点击 上传文件 按钮(如果需要保持一定的目录结构,可以先点击 创建文件夹 按钮创建文件夹)

0015e805f41f1a239b3ff88fd2e91b3

7. 选择权限,然后点击 点击上传 按钮,选择需要上传的文件,最后点击 立即上传 进行上传

0015e805f73bbcbaf8b04537df811d3

1.2 通过SDK上传

通过SDK操作,首先需要获取滴滴云S3的AccessKey/AccessSecret

1. 进入滴滴云控制台(https://app.didiyun.com/#/),点击 账户下的 安全与API 按钮

0015e805fc009375e80b03e8a7bf5a1

2. 选择 对象存储密钥

0015e805fef6c2b353832fd8040fb4f

3. 点击 创建API密钥

0015e8060208b6ea9dbf6458a07a2f6

4. 查看并记录下 SecretID和SecretKey

0015e8060583a95c9584042f6d576b9

通过python SDK上传(注意使用S3内网host: s3-internal.didiyunapi.com)

通过python SDK操作,需要先安装对应的SDK包:
pip install minio
使用python SDK进行上传
from minio import Minio
from minio.error import ResponseError
minioClient = Minio('s3.didiyunapi.com', # 在笔记本实例上操作可以使用s3-internal.didiyunapi.com,使用内网域名
                    access_key='your SecretID', # 在滴滴云S3后台可以获取
                    secret_key='your SecretKey', # 在滴滴云S3后台可以获取
                    secure=True)
try:
    with open('/home/dc2-user/test.txt', 'rb') as file_data: 
        file_stat = os.stat('/home/dc2-user/test.txt')
        print(minioClient.put_object('notebook-test', 'test.txt',
                               file_data, file_stat.st_size))
except ResponseError as err:
    print("ResponseError: " + str(err))
    raise
except Exception as e:
    print("Unkonw exception: " + str(e))

2 数据如何搬移到笔记本实例中

情况1: 数据在外网服务器

方法1: 如果数据在外网服务器(能够获取url)时,可以直接在terminal运行wget url下载数据,在notebook中同样可以运行shell命令,只需要在shell命令前加"!",比如:! wget url

方法2: 上传到滴滴云S3,然后参照情况3

情况2: 数据在本地PC

方法1: 上传到滴滴云S3,然后参照情况3

情况3: 数据在滴滴云对象存储S3

方法1: 通过控制台获取数据外网下载链接进行下载,具体如下:

如果访问权限设置为可以公有读,此时可以通过在滴滴云S3控制台获取下载链接直接下载

1. 登录滴滴云S3控制台(https://app.didiyun.com/#/s3/)

0015e80612f10bdf9d42917e4ea0e0d

2. 选择对应桶,点击详情
0015e80615f1fe0f75e69b83370d91a

3. 选择要下载的文件,点击详情

0015e80618671fae0b0ad034b93eda1

4. 在文件详情页,点击文件链接,复制

0015e80642e14b9cafcd4c766c1be64

5. 修改下载链接(非必选项)
上一步获取的下载链接是公网的下载链接,使用该链接下载是会产生公网流量,并且速度也受限,建议修改成对应的内网地址,享受近百兆的下载速度;比如:https://notebook-test.s3.didiyunapi.com/xxx 这个公网地址,只需要修改成:https://notebook-test.s3-internal.didiyunapi.com/xxx 即可,也就是修改xxx.s3.didiyunapi.comxxx.s3-internal.didiyun.com

6. 下载
登录笔记本实例,选择ternimal,使用wget进行下载: 

wget https://notebook-test.s3-internal.didiyunapi.com/xxx

方法2: 通过python SDK进行下载

通过SDK操作,首先需要获取滴滴云S3的AccessKey/AccessSecret

参考上一节中python SDK进行上传

安装python SDK
pip install minio
from minio import Minio
from minio.error import ResponseError

minioClient = Minio('s3-internal.didiyunapi.com', #同样我们建议使用S3内网域名
                    access_key='your SecretID',
                    secret_key='your SecretKey',
                    secure=True)

try:
    # Get a full object and prints the original object stat information.
    print(minioClient.fget_object('mybucket', 'otherobject', '/tmp/object'))  
# mybucket指定文件所在的bucket,例如我们测试用的notebook-test,otherobject为文件在该object下具体的路径, 
#/tmp/object为希望下载的文件在本地保存的地址,如希望把notebook-test 桶里的2.png下载到本地的家目录下,则修改/tmp/object为/home/dc2-user/2.png
except ResponseError as err:
    print("ResponseError: " + str(err))
    raise
except Exception as e:
    print("Unkonw exception: " + str(e))
参考文献
  1. 滴滴云对象存储快速开始:https://help.didiyun.com/hc/kb/article/1112889/

  2. 滴滴云对象存储SDK文件(new):https://help.didiyun.com/hc/kb/article/1218171/

  3. 滴滴云对象存储控制台用户指南:https://help.didiyun.com/hc/kb/article/1112897/