开发者学堂课程【云存储 - 对象存储管理与安全:数据的上传下载】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/507/detail/6796
数据的上传下载
内容介绍:
一、OSS 进行上传下载
二、通过阿里云控制台上传文件
三、通过阿里云控制台下载文件
四、其它两种方式
五、阿里云控制台演示
六、客户端演示
七、调用 API 演示
本节介绍云存储 OSS 的上传和下载,介绍使用不同的方式对 OSS 的数据进行上传和下载的管理。
一、OSS 进行上传下载
在进行上传下载时有两种情况:
客户端直传:
通过一些客户端例如阿里云的直传,此外还有一些第三方客户端,可使用一些不同的方式将数据传入 OSS 中。同时也可以进行下载,由于通过客户端操作,需要进行授权,若是在阿里云官方控制台中需要提供阿里云的账号和密码进行授权。如果使用第三方进行授权就需要提供账号相关的 Access ID 与 Access Secret。
服务器上传:
服务器可以是阿里云内部服务器,也可以是外部服务器。该服务器中运行相关应用,由这些应用对 OSS 进行上传下载。如果服务器与 OSS 在同一地域 ECS,之间传输为内网流量,不会产生费用。若不在同一地域或在阿里云平台外,下载使用公网,需要收取一定的流量下载费用,操作本质上都通过 API 调用进行。
二、通过阿里云控制台上传文件
比较适合一些最终的用户,因为最终的用户希望操作体验比较好,比较方便的一些工具,通过阿里云官方控制台进行上传时就可以先找到需要上传的 bucket,进入bucket 后找到 object,进入相应的文件管理。此处可以进行文件的上传,还可以新建文件夹或者进行文件下载的操作。
1. 进入 OSS 管理控制台界面。
2. 单击您要向其中上传文件的存储空间名称,打开该存储空间管理页面。
3. 单击文件管理,进入该存储空间内所有文件管理页面
4. 单击上传文件,打开文件选择对话框。
5. 选择要上传的文件,然后单击打开。文件上传成功,点击刷新按钮查看已上传的文件
三、通过阿里云控制台下载文件
下载文件时需要获取文件的 url 地址,可以点击文件名称 object,弹出的框中显示该文件的 URL 地址,复制该地址可以在其它地方使用。
1. 进入 OSS 管理控制台界面。
2. 单击目标文件所在的存储空间名称,打开存储空间概览页面。
3. 单击文件管理,打开文件管理页面。
4. 单击目标文件对应的复制文件 URL 链接。
四、其它两种方式
还存在两种方式,不一定针对最终用户,很可能是一些开发人员,他们希望将上传和下载操作整合到自己的应用程序中,就可以使用这两种方式来对 OSS 中的数据进行上传和下载管理。分别是通过 API 上传下载文件和通过 SDK 上传下载文件
1、通过 API 上传下载文件
>上传文件
用户使用 OSS API 中的 Put Object 方法上传单个 Object
>下载文件
下载已经上传的文件( Object ) , Object 下载是使用 HTTP 的 GET 请求来完成的,Get Object 用于获取某个 Object,此操作要求用户对该 Object 有读权限。
同时可以传入一些相应的参数例如 key 等。此外需要注意若对象超过 5GB,需要用到分块上传的方式进行上传。
2、通过 SDK 上传下载文件
需要根据程序选择不同的 SDK 版本,例如 java 应用做上传下载就要选择 java 的SDK,Python 需要选择 OSS 提供的 python SDK。
五、阿里云控制台演示
登录阿里云官方控制台,进入 OSS,进入到 bucket 列表创建 bucket。输入的名称具有全局唯一性不重复即可,设置地域、存储类型,点击确定创建 bucket。
接着进入文件管理上传文件,可以指定目录或选择当前目录直接挂载在 bucket 下。关于文件的 ACL 即文件访问控制列表可以选择继承 Bucket 权限,也可以选择私有、公共读、公共读写。
选择一个图片文件进行上传,如图详情
最下方为图片文件的 URL 地址,如果想看图片的详细信息或是下载需要获得文件 URL。复制使用浏览器打开,文件就被下载,为所要看到的 object 的具体图片信息。
六、客户端演示
打开客户端软件,输入相应的 Access ID 与 Access Secret,选择本机是 ECS 云主机,选择相应区域。如果是同一个地域,那么 ECS 与 OSS 之间为内网传输,免流量费用。登陆后设置安全密码进行确认进入。新建一个 bucket,输入名称,设置公共读写权限,点击确定进行创建。回到 OSS 控制台,可以看到刚才创建的 bucket
下一步上传文件,此处上传一个 image 文件,再回到刚才的控制台页面,进入到刚才创建的 bucket 中点击文件管理看相应的图片信息,可以看到图片上传成功。下载类似,点击下载。
七、调用 API 演示
打开阿里云控制台,打开 bucket 列表,对相关的 bucket 文件进行查看,在目录中没有任何对象。
接着通过 API 进行上传文件,此处为一台 OSS Python 环境的服务器,可以看到其中有相应的 python 开发包。
在使用 OSS API 进行文件的上传和下载前需要配置阿里云账号的 Access ID 和Secret。输入
cd aliyun-lab/
ls
结果中有不同的操作代码,例如创建 bucket、删除 bucket、上传 object、下载object,首先进行配置,输入
vim cpnfigure.json
在该文件中输入Access Key、Secret和endpoint
("id": "LTAI4FeL3tWtWyM3oiommp3T","secret": “7kG7iQBxQLijCdVZUmGoBJHT8ZZ9qa","endpoint" : “"oss-cn-shanghai.aliyuncs.com”}
保存后退出,完成了 Access Key、Secret 和 endpoint 基本配置。
接着上传文件,输入
vi object_upload.py
该文件调用 OSS 的 API 上传本地文件到 bucket 中,并且会重命名 object。
找到代码:
#调用 OSS API 的 put_object() 上传文件
print 'You have successfully upload the file : '
print '--Bucket Name :' ,__bucket_name,'\n--Upload File Name:',__file_name,'\n--Object Name: ' __object_name
在注释下增加代码:
with open( __file_name , 'rb ’) as fileobj:
bucket.put_object( __object_name, fileobj)
这就是上传文件的程序。
保存后退出将本地的 lab.txt 文件上传到 OSS 中,此处执行 python 脚本,输入
python object_upload.py lab-oss-924hd2 lab.txt S01099/u-v1ncf4o//lab_object.txt
完成了上传操作后在控制台中进行验证,可以看到如图 bucket 创建成功。
点击后可以看到刚才的文件已经上传成功
以上就通过 python SDK 上传成功了对象。
以上讲解了如何在阿里云上使用对象存储 OSS 进行数据上传下载和管理,而对于一些最终用户可以使用一些便捷的工具例如控制台、OSS 客户端进行操作,对于专业的开发人员如果希望通过 API SDK 的方式也可以在应用中做一个整合。