使用OSS上传下载文件

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可以提供多种用途,最简单的使用方式是做文件存储,用来上传下载文件啊

阿里云OSS是阿里提供的海量云存储服务,同时安全可靠,可靠性远高于本地存储,在日常中运用最多的可能还是文件存储。OSS提供各种操作方式,可以简单方便的上传下载文件。

1 oss的购买

   oss对新用户提供3个 月100G的免费试用,40g的半年套餐也十分优惠,购买页面如下:

屏幕截图(1019).png选择合适的套餐,如果是新用户会有100G的免费3个月套餐,免费套餐购买前需要清空账户以前欠费,这里要注意的地域的选择,如果自己以前有ECS或者RDS等实例,尽可能选择和这些实例同一地域,这样就可以通过内网访问OSS进行上传下载,如果选择了不同地域的产品,就需要外网访问了,可能会增加不必要的费用。

2 访问OSS控制台,创建bucket,配置安全策略

登录阿里云账号,访问控制台,可以看到自己已经购买的所有阿里云产品

屏幕截图(1020).png

点击OSS存储,可以跳转到OSS管理控制台

屏幕截图(1021).png

点击左侧导航栏的bucket列表,可以看到已经创建的bucket,在这里也可以创建新的bucket,

屏幕截图(1023).png

点击bucket名称可以查看bucket的详细信息,也可以创建目录,设置权限等

屏幕截图(1024).png

创建目录比较简单,直接点击新建目录,权限管理则稍微复杂一点,有多种设置和选择,可以根据自己的需要灵活设置。

屏幕截图(1025).png

首先要设置的Bucket ACL,界面如下图所示

屏幕截图(1026).png

bucket ACL的设置有三个选项,选择私有则对bucket的所有访问都需要经过身份验证,选择公共读则允许匿名用户对bucket进行读,公共读写则允许匿名用户对bucket进行读写。

私有模式下无论是上传还是下载比其它两种模式下复杂了不少,本文主要是接受这种模式下的操作。

3 使用oss控制台上传下载文件

使用控制台上传下载文件操作非常简单,点击bucket管理界面左侧的导航栏的文件管理

屏幕截图(1027).png

上图中可以看到bucket的各个文件夹和文件,点击进入文件要上传的目录中,点击上传文件

屏幕截图(1028).png

可以看到当前上传到的目录,可以将文件和目录直接拖到待上传文件区域上传,点击扫描文件则可以从本地选择要上传的文件,点击扫描文件夹则可以选择要上传的文件夹。

下载文件操作也比较简单直接

屏幕截图(1030).png

点击文件右侧的更多后再点击下载即可。也可以选择多个文件,点击上方的批量操作,进行批量下载。

4 使用ossutil进行下载上传

   ossutil是阿里云提供的命令行工具,支持linux、windows、mac等各种操纵系统,可以执行包括上传、下载在内的各种oss操作。

4.1 ossutil的下载及安装

ossutil的下载地址在这里

https://help.aliyun.com/document_detail/120075.html

     根据自己的操作系统选择合适的安装包,点击相应的连接即可下载相应平台的安装包,linux64为平台下的安装包是二机制文件,下载后上传到liunx服务器中,移动到可执行文件的目录下比如/usr/local/bin后,加上执行权限即可执行。安装完后检查一下可执行文件ossutil64的权限及位置

[root@iZ2ze0t8khaprrpfvmevjiZ bin]# ls -l /usr/local/bin/ossutil64

-rwxr-xr-x 1 root root 10459836 Jun 29 17:11 /usr/local/bin/ossutil64

4.2 创建一个配置文件

    由于我这里的bucket ACL的设置值为私有,对bucket的读和写都要进行身份验证,如果每次操作都输入连接及验证信息操作起来比较繁琐。想要避免重复输入,可以创建一个配置文件,每次对bucket操作时使用这个配置就可以省去频繁输入endpoint、AccessKey ID、AccessKey Secret的痛苦了,这些都很不容易记住。创建配置文件之前先准备一下上面的信息:

屏幕截图(1013).png

endpoint在上面的bucket overview页面上可以看到,由于我这里的ECS和OSS处于同一地域,使用内网的地址即可。

屏幕截图(1014).png

access key的信息在上面的页面上获取,点击页面右上角的头像,后可以看到管理access key选项,点击一下,就进入上图的访问key管理界面,如果这里没显示访问key则须要创建一个,如果已有访问key则点击右面的查看key,获取手机验证码并输入后访问key id和密钥会显示在屏幕上。

获取必要的信息后可以创建配置文件了,使用ossutil工具以交互式方式创建,也可以直接编辑文件或者使用ossutil命令带选项方式创建

[root@iZ2ze0t8khaprrpfvmevjiZ ~]# ossutil64 config

The command creates a configuration file and stores credentials.

     Please enter the config file name,the file name can include path(default /root/.ossutilconfig, carriage return will use the default file. If you specified this option to other file, you should specify --config-file option to the file when you use other commands):my_oss

     For the following settings, carriage return means skip the configuration. Please try "help config" to see the meaning of the settings

     Please enter language(CH/EN, default is:EN, the configuration will go into effect after the command successfully executed):CH

     Please enter endpoint:threemonth.oss-cn-beijing-internal.aliyuncs.com

     Please enter accessKeyID:LTAI5t725qPPeJhpsCoM3epR

     Please enter accessKeySecret:****************************

     Please enter stsToken:

根据提示输入配置文件名,语言(cn或者ch),access key id, access key 密钥,stsToken则不必输入直接回车即可。

4.3 使用ossutil工具bucket的管理、文件上传下载

显示bucket

[root@iZ2ze0t8khaprrpfvmevjiZ ~]# ossutil64 ls -s --config-file my_oss

   Error: oss: service returned error: StatusCode=403, ErrorCode=SignatureDoesNotMatch, ErrorMessage="The request signature we calculated does not match the signature you provided. Check your key and signing method.", RequestId=62BCF78D4CABF13632A1FBEE

这里的错误信息显示的是signature不匹配,查询阿里官网得知endpoint信息是不含bucket的,从显示endpoint的图里也可以看到,上面创建配置文件时实际输入的bucket地址,用vi编辑一下配置文件,去掉endpoint里的bucket信息再执行命令

[root@iZ2ze0t8khaprrpfvmevjiZ ~]# ossutil64 ls --config-file my_oss

CreationTime                                 Region    StorageClass    BucketName

2022-06-29 17:29:59 +0800 CST        oss-cn-beijing        Standard    oss://threemonth

Bucket Number is: 1

0.173934(s) elapsed

可以看到创建时间,区域及bucket名称

上传一个文件

[root@iZ2ze0t8khaprrpfvmevjiZ ~]# ossutil64 cp gdb.log oss://threemonth/upload --config-file my_oss

Succeed: Total num: 1, size: 1,925. OK num: 1(upload 1 files).

average speed 25000(byte/s)

0.080086(s) elapsed

屏幕截图(1017).png

文件没有上传到upload目录下,反而上传到了bucket根目录下,文件名也改为了upload,要想上传到指定目录下,目录名后面需要加上‘/’,如下所示


[root@iZ2ze0t8khaprrpfvmevjiZ ~]# ossutil64 cp gdb.log oss://threemonth/upload/ --config-file my_oss

Succeed: Total num: 1, size: 1,925. OK num: 1(upload 1 files).

average speed 25000(byte/s)

屏幕截图(1018).png

文件已经上传到了upload目录下,查看文件详细信息,可以看到文件的url,使用wget在ECS中下载一下试试


[root@iZ2ze0t8khaprrpfvmevjiZ ~]# wget https://threemonth.oss-cn-beijing.aliyuncs.com/upload/%E9%82%93%E4%B8%BD%E5%90%9B%20-%20%E4%BD%86%E6%84%BF%E4%BA%BA%E9%95%BF%E4%B9%85.mp3?Expires=1656553431&OSSAccessKeyId=TMP.3KewYToct7R9i9kETqz4LjLRb59FNXi82t6DgBikZU7ge7hsNX8MxZSZFqPwBAgQy7XLebr3Knt1qCEqWKrmM5anVMY64P&Signature=XESKN%2FwBVsmIp1S05YqqnLUs3w8%3D

[1] 320163

[2] 320164

[root@iZ2ze0t8khaprrpfvmevjiZ ~]#

Redirecting output to ‘wget-log’.

[1]-  Exit 8                  wget https://threemonth.oss-cn-beijing.aliyuncs.com/upload/%E9%82%93%E4%B8%BD%E5%90%9B%20-%20%E4%BD%86%E6%84%BF%E4%BA%BA%E9%95%BF%E4%B9%85.mp3?Expires=1656553431

[2]+  Done                    OSSAccessKeyId=TMP.3KewYToct7R9i9kETqz4LjLRb59FNXi82t6DgBikZU7ge7hsNX8MxZSZFqPwBAgQy7XLebr3Knt1qCEqWKrmM5anVMY64P

下载报错了,报错日志重定向到wget-log中,看一下这个日志的内容:


[root@iZ2ze0t8khaprrpfvmevjiZ ~]# cat wget-log

    --2022-06-30 09:39:17--  https://threemonth.oss-cn-beijing.aliyuncs.com/upload/%E9%82%93%E4%B8%BD%E5%90%9B%20-%20%E4%BD%86%E6%84%BF%E4%BA%BA%E9%95%BF%E4%B9%85.mp3?Expires=1656553431

     Resolving threemonth.oss-cn-beijing.aliyuncs.com (threemonth.oss-cn-beijing.aliyuncs.com)... 59.110.190.48

     Connecting to threemonth.oss-cn-beijing.aliyuncs.com (threemonth.oss-cn-beijing.aliyuncs.com)|59.110.190.48|:443... connected.

     HTTP request sent, awaiting response... 403 Forbidden

     2022-06-30 09:39:17 ERROR 403: Forbidden.

显示403错误,拒绝访问

使用ossutil工具下载,将文件重命名一下

[root@iZ2ze0t8khaprrpfvmevjiZ ~]# ossutil64 cp oss://threemonth/upload/gdb.log ./gdb.log_download  --config-file=my_oss

Succeed: Total num: 1, size: 1,925. OK num: 1(download 1 objects).

average speed 13000(byte/s)

0.138836(s) elapsed

显示一下文件


[root@iZ2ze0t8khaprrpfvmevjiZ ~]# ls

    gdb.init                                    oracle-database-preinstall-21c-1.0-1.el8.x86_64.rp

     gdb.log                                     percona-release-latest.noarch.rpm

     gdb.log_download                            PolarDB-for-PostgreSQL

文件下载成功。










相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
4月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之上传素材文件不在同一地域的OSS,怎么上传多张图片
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
49 1
|
4月前
|
存储 运维 Serverless
函数计算产品使用问题之OSS触发器是否可以只设置文件前缀
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
存储 弹性计算 监控
建设云上稳定性问题之为什么要在云效平台创建发布流水线并将源代码编译环节替换为从OSS下载构建部署物
建设云上稳定性问题之为什么要在云效平台创建发布流水线并将源代码编译环节替换为从OSS下载构建部署物
|
5月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在使用MaxCompute进行数据集成同步到OSS时,出现表名和OSS文件名不一致且多了后缀,该如何处理
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
运维 Serverless 对象存储
函数计算产品使用问题之如何配合OSS实现接口收到的图片或文件直接存入OSS
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之使用OSS读取CSV文件到ODPS时遇到报错,一般是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
JSON 运维 Serverless
函数计算产品使用问题之如何实现数据的读取和修改,而不需要每次都从OSS下载完整的数据
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之在调用接口传入的图片URL参数,文件在本地或者非上海地域OSS链接,该怎么办
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
6月前
|
Java 对象存储
阿里云OSS上传下载文件java
阿里云OSS上传下载文件java
394 0