阿里云OSS使用购买流程

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 本文介绍了阿里云对象存储OSS的基本使用,包括准备工作、购买开通阿里云账号并进行实名认证,以及通过Web控制台、命令行工具ossutil和SDK进行文件操作。此外,还提到了RESTful API和图形化工具OSSBrowser的使用,并给出了Java SDK下载对象的示例代码。文章内容包括了OSS的基本概念,如存储空间Bucket和对象Object,以及不同类型的存储类型。

准备工作

无论怎么样,你需要准备一个阿里云账号,点击:注册阿里云

输入相关信息,然后注册成功以后,点击


然后注册成功了,实名一下阿里云账号。打开实名入口,选择个人实名或者企业实名。

image.gif

如果你是个人用户,则建议你使用个人实名,如果你是企业用户,则建议你使用企业实名,这里要注意一下,个人实名的阿里云账号,在消费后,是无法索取企业发票的。

1.摘要

本篇博客对阿里云OSS的基本概念和使用进行总结,旨在快速上手该云存储产品,更为详细的内容可以参考官方文档,日后再进行补充。

2.概述

1)何为阿里云OSS?

阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的分布式云存储产品

2)为何使用云存储?

传统数据存储的主要方式

①将数据存储于服务器本机,由操作系统(文件系统)直接通过文件路径实现对数据的存储与访问

②将数据存储于自建的存储系统中,通过本地进程间的或网络进程间的接口实现对数据的存储与访问(相当于在操作系统之上增加了一层数据存储与管理的应用,将业务与数据管理解耦)

这里的数据更具体的指各种非结构化的数据,即各种类型的文件或资源(如视频、图像、文本等)

传统数据存储方式的主要不足

需要自建存储系统并处理各种细节(基本功能、数据组织、备份容灾、扩容、安全性、数据迁移等)

云存储及其优势

与传统方式中的自建存储系统一致,只是将数据存储系统搭建、管理的任务交由第三方云服务提供商处理,省时省力省成本,是大数据、云服务时代敏捷开发的利器

3)使用方式

Web控制台

命令行工具ossutil

十多种语言的SDK

RESTfule API

图形化工具ossbrowser

4)存储类型

image.gif 编辑

5)功能介绍

image.gif 编辑

3.基本概念

1)存储空间Bucket

用于存储对象的容器

配置信息

①地域Region:OSS数据中心所在的物理位置,指定后不能修改,不同Region对应的访问域名不同

②访问域名Endpoint:OSS对外服务的访问域名,内外网不同

③访问密钥AcessKey:AK,用户通过用户标识AccessKeyId和密钥AccessKeySecret对称加密的方式进行身份验证,可以由Bucket创建者和Bucket授权者创建

④所属资源组:为Bucket打不同的标签

每个用户可以拥有多个存储空间,每个存储空间内部是扁平的,存储空间内的对象数目不限

存储空间名在整个OSS范围内是全局、唯一、不可修改的

命名规范

①只能包含数字、小写字母和短划线-

②必须以数字或小写字母开头和结尾

③长度在3-63字符之间

2)对象Object

对象是OSS存储数据的基本单元,也称OSS文件

组成

①元信息Object Meta(如最后修改时间、大小等信息)

②用户数据Data

③文件名Key(也称ObjectKey、ObjectName,使用UTF8编码、长度在1-1023字符之间、不能以正反斜杠开头)

对象类型

①Normal:简单模式上传的Object,适合5G以内的文件,只能读、不能修改,再次上传同名文件会覆盖

②Multipart:通过分片上传的Object,适合大文件,只能读,不能修改,再次上传同名文件会覆盖

③Appendable:追加方式上传的Object,可以追加上传,适用于视频监控、视频直播等实时视频流场景

不同类型之间不能相互转换

4.使用示例

4.1服务购买与开通

访问阿里云官网 → 登录 → 选择:产品/存储/对象存储OSS → 折扣套餐 → 选择套餐类型、付费 → 在对象存储OSS访问页中点击服务开通(账户第一次使用)

image.gif

image.gif

4.2Web控制台

创建存储空间Bucket

进入到管理控制台 → 点击Bucket列表 → 创建Bucket(进行配置)

文件管理

①上传文件:当前目录/指定目录(路径不存在自动创建) → 指定ACL(继承、私有、公共读、公共写)

②下载文件

③文件共享:URL共享下载(将HTTP头中的Content-Disposition设为attachment);自行绑定域名实现URL预览

通过自有域名访问OSS资源

4.3命令行工具ossutil

下面示例以Windows10 64位操作系统为例子

下载并安装对应操作系统的ossutil命令行工具

配置ossutil

①首先,创建AcessKey密钥:进入账户控制台 → 从右上角头像位置,进入AccessKey管理页 → 创建AccessKey密钥,验证账户即可(该步骤属于阿里云的访问控制RAM范畴)

image.gif

image.gif

②进入安装目录,运行ossutil.bat

③键入ossutil config,指定配置文件位置,或回车将配置文件存储在默认位置(推荐)

④设置语言,CH/EN,默认为CH

⑤键入对应的endpooint(可在对应Bucket概览查看)、accessKeyID、accessKeysecret、stsToken(回车为空)

⑥键入ossutil进行验证,若出现命令行提示,则证明配置成功(最后还可将该目录添加到系统的环境变量中)

image.gif

简单示例

# 下载图片
ossutil cp oss://{bucket_name}/{file_name} {local_path}
# e.g.
ossutil cp oss://lincat-blog/image/my_pic1.jpg C:\Users\Administrator\Desktop

image.gif

显示下载成功或失败提示:

image.gif 编辑

其余命令行操作参见官方文档

4.4SDK编程

SDK编程以Java为例,OSS对Java的支持要求JDK版本在1.7及以上

引入依赖

①JDK1.9以下的依赖

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.15.1</version>
</dependency>

image.gif

②JDK1.9以上还需要添加jaxb相关依赖(略)示例代码:读文件并保存在本地

/** 通过OSS对Java的支持读取文件 **/

/** 通过OSS对Java的支持读取文件 **/
public class SDKDemo {
    public static void main(String[] args) {
        // 外网ip
        String endpoint = "oss-cn-hangzhou.aliyuncs.com";
        // accessKeyID
        String accessKeyId = "";
        // accessKeySecret
        String accessKeySecret = "";
        /* OSSClient是OSS的Java客户端,用于管理存储空间和文件等OSS资源
        需要初始化一个OSSClient实例,并根据需要修改ClientConfiguration的默认配置项*/
        OSS ossClient = new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);
        try {
            // Bucket名
            String bucketName = "lincat-blog";
            // 对象名
            String objectName = "image/my_pic1.jpg";
            // 写入本地文件的路径
            String localFilePath = "my_pic1.jpg";
            // 获取对象
            OSSObject ossObject = ossClient.getObject(bucketName,objectName);
            // 转为输入流
            InputStream inputStream = ossObject.getObjectContent();
            FileOutputStream fileOutputStream = new FileOutputStream(localFilePath);
            // 写入输出文件流
            if(inputStream != null){
                int read;
                byte[] bytes = new byte[2048];
                while ((read = inputStream.read(bytes)) != -1) {
                    fileOutputStream.write(bytes, 0, read);
                }
            }
            // 关闭流与OSS客户端
            inputStream.close();
            fileOutputStream.close();
            ossClient.shutdown();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

image.gif

4.5RESTful API

通过OSS的RESTful API对OSS进行操作,这里通过Java语言,编写下载对象的例子

查阅OSS下载对象的接口

GET /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Range: bytes=ByteRange(可选)

image.gif

利用SpringBoot对RESTful请求的封装模板RestTemplate发起请求

<!-- 引入web starter以支持RestTemplate -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.7.2</version>
 </dependency>

image.gif

编写代码(请求公共可读写的OSS对象则无需Authorization)

/* 通过OSS的RESTful API 下载图片 */
public class RestDemo {
    public static void main(String[] args) throws IOException {
        // Spring封装的RESTful请求模板类
        RestTemplate restTemplate = new RestTemplate();
        // Region端点
        String endpoint = "oss-cn-hangzhou.aliyuncs.com";
        // accessKeyID
        String accessKeyId = "";
        // accessKeySecret
        String accessKeySecret = "";
        // bucket名
        String bucketName = "lincat-blog";
        // 对象名
        String objectName = "image/my_pic1.jpg";
        // 写入本地文件的路径
        String localFilePath = "advanced/src/oss/my_pic1.jpg";
        // 构造Authorization参数
        Map<String,String> params = new HashMap<String, String>();
        String authorization = new StringBuilder().append("OSS ")
                .append(accessKeyId)
                .append(":")
                .append(accessKeySecret).toString();
        params.put("Authorization",authorization);
        // 构造URL
        String url = new StringBuilder().append("http://")
                .append(bucketName)
                .append(".")
                .append(endpoint)
                .append("/").append(objectName).toString();
        // 注意此处的返回值类型org.springframework.core.io.Resource
        Resource resource = restTemplate.getForObject(url, Resource.class,params);
        // 输入流
        InputStream inputStream = resource.getInputStream();
        // 输出文件流
        FileOutputStream fileOutputStream = new FileOutputStream(localFilePath);
        // 写入输出文件流
        if(inputStream != null){
            int read;
            byte[] bytes = new byte[2048];
            while ((read = inputStream.read(bytes)) != -1) {
                fileOutputStream.write(bytes, 0, read);
            }
        }
        // 关闭流
        inputStream.close();
        fileOutputStream.close();
    }
}

image.gif

运行可实现OSS对象的下载

image.gif

4.6图形化工具

5.其他功能

5.1签名工具

1)Header签名

2)PostObject Policy签名

3)URL签名

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
13天前
|
人工智能 达摩院 开发工具
MindOpt不联网License,可直接在阿里云线上购买了
在很多场景里,由于智能决策运行环境不允许联网、网络不稳定、或者需要毫秒级计算决策方案需要节省联网耗时等场景,多用户反馈需要【不联网】的License。
MindOpt不联网License,可直接在阿里云线上购买了
|
3天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
|
14天前
|
人工智能 前端开发 JavaScript
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
阿里云验证码产品,使用业界先进的风控引擎结合“规则+AI”模型,有效区分真实用户和机器自动化脚本攻击,避免机器请求造成业务损失。主要适用于垃圾注册、刷库撞库,薅羊毛,短信被刷等风险场景。为您提供安全可靠的业务环境。本文为大家介绍验证码使用时滑动验证流程及验证不通过的问题排查。
64722 4
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
|
13天前
|
云安全 算法 数据建模
阿里云SSL证书免费版申请流程,收费版证书收费标准及证书类型选择参考
SSL证书是实现网站https访问必须购买的云安全类产品,现在很多用户在网站做好之后,下一步通常都是给网站域名购买SSL证书实现网站的https访问,阿里云提供申请SSL证书服务,现在每个阿里云个人或企业用户(以实名认证为准)每年可以一次性申请20张免费Digicert DV单域名试用证书(以下简称免费证书),本文为大家介绍具体的申请流程和收费证书的最新收费标准以及不同种类的证书选择参考。
阿里云SSL证书免费版申请流程,收费版证书收费标准及证书类型选择参考
|
15天前
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
56022 2
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
15天前
阿里云服务器购买后,怎么申请开具发票?
阿里云用户可在用户中心的发票管理页面开具电子或纸质发票。首次开票需设置发票抬头,支持个人或企业,可选增值税普通或专用发票。个人账号无法直接开企业发票,需变更实名认证。发票税率因产品而异,通常为6%或13%。发票抬头可修改,纸质发票邮寄费用由阿里云承担(特殊情况除外)。电子发票同样可报销。更多详情见阿里云帮助中心。
|
16天前
|
存储 弹性计算 数据管理
【阿里云弹性计算】ECS实例的冷热数据管理:利用阿里云 OSS 与 ECS 的高效协同
【5月更文挑战第28天】阿里云ECS与OSS协同,实现弹性计算服务的高效数据管理。ECS处理热数据,OSS存储冷数据,降低存储成本,提升性能。通过自动化策略实现数据自动迁移,优化实例性能,适用于电商图片、日志存储等场景。注意迁移策略设置和数据安全,为企业带来更大价值和竞争力。
115 1
|
23天前
|
存储 弹性计算 Linux
阿里云服务器购买常见三种购买方式及适用场景、图文教程及注意事项参考
阿里云服务器的购买方式主要有快速购买、自定义购买和活动购买这三种常见的方式。每种购买方式都有自己的适合场景,也有很多需要注意的地方,下面是这些购买方式的具体图文教程及注意事项,适合初次购买阿里云服务器的用户参考,从而选择适合自己的购买方式。
阿里云服务器购买常见三种购买方式及适用场景、图文教程及注意事项参考
|
24天前
|
存储 弹性计算 数据库
阿里云oss备份网站数据的详细步骤
该教程指导如何使用阿里云OSS备份网站数据。首先,注册阿里云账号并购买40GB的OSS存储空间。创建Bucket,选择与服务器相同的区域和私有权限。安装阿里云OSS插件,获取AccessKey信息。在宝塔面板中设置计划任务进行网站或数据库备份,选择内网域名以节省流量。备份完成后,通过文件管理器检查OSS中是否有备份文件。下载备份文件需点击文件名,然后打开文件URL。
112 5
|
26天前
|
域名解析 网络协议 CDN
网站接入阿里云CDN实现域名加速全流程
阿小云网站已通过ICP备案在广州节点上线,但为提升全国用户访问速度,计划接入CDN。以下是4步CDN接入教程:1) 开通阿里云CDN服务;2) 添加加速域名;3) 使用DNS解析验证域名归属权;4) 配置CNAME实现域名与CDN节点关联。详细指南见阿里云CDN官方文档。