目录
个人数据如何上传到S3
数据如何搬移到笔记本实例中(数据在外网服务器,数据在本地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/)
2. 点击创建对象存储按钮(如果已有对象存储桶,可以直接跳到步骤5)
3. 填写合适的存储桶名称,如:notebook-test;选择广州一区,设置合适的访问权限,私有表示必须有accessKey/accessSecret才能访问,公有表示访问不用鉴权;点击 立即创建 按钮
4. 创建成功
5. 点击需要上传数据的对象桶,进入详情页面;注意可以在这里看到外网访问域名
6. 点击 上传文件 按钮(如果需要保持一定的目录结构,可以先点击 创建文件夹 按钮创建文件夹)
7. 选择权限,然后点击 点击上传 按钮,选择需要上传的文件,最后点击 立即上传 进行上传
1.2 通过SDK上传
通过SDK操作,首先需要获取滴滴云S3的AccessKey/AccessSecret
1. 进入滴滴云控制台(https://app.didiyun.com/#/),点击 账户下的 安全与API 按钮
2. 选择 对象存储密钥
3. 点击 创建API密钥
4. 查看并记录下 SecretID和SecretKey
通过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/)
2. 选择对应桶,点击详情
3. 选择要下载的文件,点击详情
4. 在文件详情页,点击文件链接,复制
5. 修改下载链接(非必选项)
上一步获取的下载链接是公网的下载链接,使用该链接下载是会产生公网流量,并且速度也受限,建议修改成对应的内网地址,享受近百兆的下载速度;比如:https://notebook-test.s3.didiyunapi.com/xxx 这个公网地址,只需要修改成:https://notebook-test.s3-internal.didiyunapi.com/xxx 即可,也就是修改xxx.s3.didiyunapi.com为xxx.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))
参考文献
滴滴云对象存储快速开始:https://help.didiyun.com/hc/kb/article/1112889/
滴滴云对象存储SDK文件(new):https://help.didiyun.com/hc/kb/article/1218171/
滴滴云对象存储控制台用户指南:https://help.didiyun.com/hc/kb/article/1112897/