阿里云OSS使用流程

 准备工作

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

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

image

image.gif

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

image

image.gif

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

1.摘要


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

2.概述


1)何为阿里云OSS?

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

2)为何使用云存储?

传统数据存储的主要方式
①将数据存储于服务器本机,由操作系统(文件系统)直接通过文件路径实现对数据的存储与访问
②将数据存储于自建的存储系统中,通过本地进程间的或网络进程间的接口实现对数据的存储与访问(相当于在操作系统之上增加了一层数据存储与管理的应用,将业务与数据管理解耦)
这里的数据更具体的指各种非结构化的数据,即各种类型的文件或资源(如视频、图像、文本等)

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

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

3)使用方式

Web控制台
命令行工具ossutil
十多种语言的SDK
RESTfule API
图形化工具ossbrowser
4)存储类型


5)功能介绍


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访问页中点击服务开通(账户第一次使用)

4.2Web控制台


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

文件管理
①上传文件:当前目录/指定目录(路径不存在自动创建) → 指定ACL(继承、私有、公共读、公共写)
②下载文件
③文件共享:URL共享下载(将HTTP头中的Content-Disposition设为attachment);自行绑定域名实现URL预览

通过自有域名访问OSS资源

4.3命令行工具ossutil


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

下载并安装对应操作系统的ossutil命令行工具
配置ossutil
①首先,创建AcessKey密钥:进入账户控制台 → 从右上角头像位置,进入AccessKey管理页 → 创建AccessKey密钥,验证账户即可(该步骤属于阿里云的访问控制RAM范畴)

②进入安装目录,运行ossutil.bat
③键入ossutil config,指定配置文件位置,或回车将配置文件存储在默认位置(推荐)
④设置语言,CH/EN,默认为CH
⑤键入对应的endpooint(可在对应Bucket概览查看)、accessKeyID、accessKeysecret、stsToken(回车为空)
⑥键入ossutil进行验证,若出现命令行提示,则证明配置成功(最后还可将该目录添加到系统的环境变量中)


简单示例

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

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


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

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>

②JDK1.9以上还需要添加jaxb相关依赖(略)示例代码:读文件并保存在本地
/** 通过OSS对Java的支持读取文件 **/

/** 通过OSS对Java的支持读取文件 **/
public class SDKDemo {public static void main(String[] args) {// 外网ipString endpoint = "oss-cn-hangzhou.aliyuncs.com";// accessKeyIDString accessKeyId = "";// accessKeySecretString 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();}}
}


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(可选)

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

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

编写代码(请求公共可读写的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";// accessKeyIDString accessKeyId = "";// accessKeySecretString 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);// 构造URLString url = new StringBuilder().append("http://").append(bucketName).append(".").append(endpoint).append("/").append(objectName).toString();// 注意此处的返回值类型org.springframework.core.io.ResourceResource 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();}
}


运行可实现OSS对象的下载


4.6图形化工具


5.其他功能


5.1签名工具
1)Header签名
2)PostObject Policy签名
3)URL签名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/308703.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Mac主机上连接Linux虚拟机

前言 最近醉心于研究Linux&#xff0c;于是在PD上安装了一个Debian Linux虚拟机&#xff0c;用来练练手。但是每次在mac和Linux之间切换很是麻烦&#xff0c;有没有一种方法&#xff0c;可以在mac终端直接连接我的虚拟机&#xff0c;这样在mac终端上就可以直接操控我的Linux虚…

【C语言】——字符串函数的使用与模拟实现(上)

【C语言】——字符串函数 前言一、 s t r l e n strlen strlen 函数1.1、函数功能1.2、函数的使用1.3、函数的模拟实现&#xff08;1&#xff09;计数法&#xff08;2&#xff09;递归法&#xff08;3&#xff09;指针 - 指针 二、 s t r c p y strcpy strcpy 函数2.1、函数功能…

tkinter窗口组件Entry

from tkinter import * 创建主窗口 app Tk() 设置窗口大小为1040x2048(手机) app.geometry(“1040x2048”) 设置窗口背景为灰色 app.configure(bg“gray”) 定义一个函数text()&#xff0c;用于处理输入框内容的变化 def text(): # 获取输入框e1的内容 if e1.get() “…

JS/TS笔记学习1

周末总得学点什么吧~ 奥利给! 跑火车 递归 减速 let currentIndex 0; let speed 500; // 初始速度&#xff0c;单位是毫秒 let decrement 20; // 每次迭代速度减少的量 const cells document.querySelectorAll(.cell); function highlightCell() { cells.forEach(…

常见的锁策略,synchronized优化过程和cas过程

1. 常见的锁策略 所谓"策略",也可以理解为做法."锁策略"就是用来描述一把锁面对加锁/解锁时的做法. 1.1 乐观锁 vs 悲观锁 要区分一把锁是乐观锁还是悲观锁,就要预测当前这把锁冲突的概率高不高. 如果冲突概率高,后续要做的工作往往会更多,加锁的开销就…

使用阿里云试用Elasticsearch学习:4. 聚合——2

近似聚合 如果所有的数据都在一台机器上&#xff0c;那么生活会容易许多。 CS201 课上教的经典算法就足够应付这些问题。如果所有的数据都在一台机器上&#xff0c;那么也就不需要像 Elasticsearch 这样的分布式软件了。不过一旦我们开始分布式存储数据&#xff0c;就需要小心…

Docker 安装 RocketMQ

目录 一、新建两个配置文件 1.1 创建docker-compose.yml文件 1.2 .新建broker.conf文件 二、运行 三、可视化界面 一、新建两个配置文件 1.1 创建docker-compose.yml文件 version: 3.5 services:rmqnamesrv:image: foxiswho/rocketmq:servercontainer_name: rmqnamesrvports…

用html写一个雨的特效

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>雨特效</title><link rel"stylesheet" href"./style.css"> </head> <body> <div id"wrap-textu…

43岁百亿千金夫妇国外旅游高调放闪,羡煞好友马国明

萧正楠早前忙着拍摄TVB新剧《奔跑吧&#xff01;勇敢的女人们》&#xff0c;剧集煞科后他即和老婆黄翠如一起到意大利旅行。两公婆分别在IG大晒旅行靓相&#xff0c;甜蜜满泻。 这次萧正楠的旅游照都是由翠如亲自操刀拍摄&#xff0c;相中所见&#xff0c;萧正楠在广场大摆Chok…

竞赛 协同过滤电影推荐系统

文章目录 1 简介1 设计概要2 课题背景和目的3 协同过滤算法原理3.1 基于用户的协同过滤推荐算法实现原理3.1.1 步骤13.1.2 步骤23.1.3 步骤33.1.4 步骤4 4 系统实现4.1 开发环境4.2 系统功能描述4.3 系统数据流程4.3.1 用户端数据流程4.3.2 管理员端数据流程 4.4 系统功能设计 …

AI人工智能讲师大模型培训讲师叶梓 大语言模型(LLM)在科学文献摘要领域的应用

大语言模型&#xff08;LLM&#xff09;在科学文献摘要领域的应用是一个前沿且迅速发展的技术趋势。通过结合GitHub上yobibyte的Compressor项目&#xff0c;我们可以深入探讨这一技术方案的潜力和实现方式。 技术背景 随着科学研究的快速发展&#xff0c;每天都有大量的科学文…

【软考中级】软件设计师考点分布

文章目录 软考官网资格设置软考报考流程 【软件设计师】考点分布选择题考点分布案例题考点分布 软考官网 中国计算机技术职业资格网&#xff1a;https://www.ruankao.org.cn/ 官网报名平台&#xff1a;https://bm.ruankao.org.cn/sign/welcome 资格设置 计算机软件计算机网…

QT常用控件

常用控件 控件概述QWidget 核⼼属性核⼼属性概览enabledgeometrywindowTitlewindowIconwindowOpacitycursorfonttoolTipfocusPolicystyleSheet 按钮类控件Push ButtonRadio ButtionCheck Box 显⽰类控件LabelLCD NumberProgressBarCalendar Widget 输⼊类控件Line EditText Edi…

MemberPress配置和使用会员登录页面

目录 隐藏 创建会员登录页面 编辑登录页面 设计您的登录页面 链接到您的登录页面 创建会员登录页面 要创建MemberPress会员登录页面&#xff0c;您需要做的就是导航到 MemberPress > 设置 > 页面选项卡&#xff0c;然后在页面顶部附近的“MemberPress 登录页面”…

计算机网络——ARP协议

前言 本博客是博主用于复习计算机网络的博客&#xff0c;如果疏忽出现错误&#xff0c;还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结&#xff0c;讲的非常好。 可以先去看一篇视频&#xff0c;再来参考这篇笔记&#xff08;或者说直接偷走&#xff09;。 …

微服务边车模式深度解析:赋能云原生应用的终极指南(自己搞一个简单SideCar?)

什么是SideCar? Sidecar模式定义&#xff1a; Sidecar 模式是一种常用于微服务架构中的设计模式&#xff0c;该模式允许将应用程序的核心功能与辅助功能&#xff08;如日志记录、监控、配置管理、网络通信等&#xff09;分离开来。在这种设计模式中&#xff0c;每个微服务主容…

快团团团长如何设置起购金额?新手教程免费学!

一、功能说明 部分团长有最低起送价的需求&#xff0c;这时可以通过设置起购金额来规定团员的最低起购价。 二、具体操作步骤 &#xff08;一&#xff09;如何设置起购金额&#xff1f; 在团购设置中&#xff0c;点击“更多团购设置”&#xff0c;在“其他设置”中找到“起购…

vue3使用jsQR解析二维码

1.了解jsQR jsQR是一个纯javascript脚本实现的二维码识别库&#xff0c;不仅可以在浏览器端使用&#xff0c;而且支持后端node.js环境。jsQR使用较为简单&#xff0c;有着不错的识别率。 2.效果图 3.二维码 4.下载jsqr包 npm i -d jsqr5.代码 <script setup> import …

每日一题(leetcode209):长度最小的子数组--滑动窗口

由于是区间问题&#xff0c;考虑到使用滑动窗口。 下面是我刚开始写的代码&#xff0c;虽然能通过&#xff0c;但是思维紊乱&#xff0c;循环条件应该去盯着满足情况下的条件&#xff0c;然后每次都去比较最小值&#xff0c;这样比较简洁。 class Solution { public:int minS…

卷积神经网络结构组成与解释

卷积神经网络结构组成与解释 卷积神经网络是以卷积层为主的深度网路结构&#xff0c;网络结构包括有卷积层、激活层、BN层、池化层、FC层、损失层等。卷积操作是对图像和滤波矩阵做内积&#xff08;元素相乘再求和&#xff09;的操作。 1. 卷积层 常见的卷积操作如下&#x…