SpringBoot图片上传的奇妙冒险
SpringBoot图片上传的奇妙冒险S3和OSS的核心区别:
价格:OSS在国内的价格通常比S3低20%-30%(特别是流量费用)
速度:OSS在国内的访问速度明显快于S3(毕竟服务器在国内)
合规性:OSS更符合中国的数据合规要求
集成:OSS与阿里云其他服务(如CDN)的集成更顺畅
与本地上传相比的优势:
不用操心服务器磁盘空间问题
天生具备高可用性和灾备能力
轻松实现CDN加速
无需自己处理图片缩略图等常见需求
下面就来开启我们的”本土化”奇妙冒险吧!
第一步:导入依赖1. 创建Bucket登录阿里云控制台,进入OSS服务,创建一个Bucket。记住这几个关键配置:
地域:选离你用户最近的(如华东1)
存储类型:标准存储就行
读写权限:先设私有,后面用STS临时令牌更安全
2. 获取AccessKey在RAM访问控制中创建用户,记得保存:
AccessKey ID
AccessKey Secret
第二步:SpringBoot装备库1. 添加依赖12345678910111213<!-- OSS官方SDK --><dependency> ...
JWT 是什么?如何用?
JWT 是什么?如何用?一、JWT 是什么?(通俗版)想象你去游乐园玩,买票后会得到一个手环(Token)。这个手环上有你的信息(用户ID、购买时间等),工作人员只需要看一眼手环(验证Token)就知道你是否能玩某个项目,而不用每次都查你的购票记录(查数据库)。
JWT(JSON Web Token) 就是这样一个数字手环,它有三个主要特点:
自包含:令牌本身就包含用户信息(不用总查数据库)
可验证:服务器可以验证令牌是否被篡改
有有效期:像食品保质期一样,过期就失效
二、JWT 的组成结构一个JWT通常长这样:xxxxx.yyyyy.zzzzz
它实际由三部分组成(用点分隔):
Header(头) - 说明令牌类型和签名算法
1234{ "alg": "HS256", // 签名算法 "typ": "JWT" // 令牌类型}
Payload(负载) - 存放实际数据(用户ID等)
12345{ "userId": "12 ...
Java面经刷题_Day1
Java面向对象有哪些特性?
封装、继承、多态
封装:说明一个类的行为和属性与其他类关系。增加代码的可维护性,便于修改,隐藏了类的内部实现机制。
继承:父类和子类的关系。从已有类派生出新的类,增强代码的复用性。
多态性:继承、重写、父类引用指向子类对象。说明的是类与类的关系。
为什么这些特性能帮我们写更好的代码?
封装:使代码能够重复使用,增加代码的复用性
继承:也是增加代码的复用性
多态:增强代码的可移植性、鲁棒性
Show Me The Difference(from Alibaba)1234567891011121314151617181920212223//以下代码有什么不同?//代码1final class Accumulator{ private double result=0.0D; public void addAll(double[] values){ for(double value :values){ result+=value; ...
Calendar类的使用
Calendar类Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
一、构造方法protected Calendar() :由于修饰符是protected,所以无法直接创建该对象。需要通过别的途径生成该对象。
二、成员方法
static Calendar getInstance()
使用默认时区和区域设置获取日历。**通过该方法生成Calendar对象。**如下所示:Calendar cr=Calendar.getInstance();
public void set(int year,int month,int date,int hourofday,int minute,int second)
设置日历的年、月、日、时、分、秒。
public int get(int field)
返回给定日历字段的值。所谓字段就是年、月、日等等。
public void setTime(Date date)
使用给定的Date设置 ...