阿里云OSS域名配置及简单上传的示例代码
作者:此人来自火星 发布时间:2022-04-08 19:14:32
标签:阿里云OSS,域名配置,上传
目前开发系统,附件文件一般都会使用第三方的存储空间来保存,一方面是为了开发者提供便利,另一方可以减轻系统的访问压力,下面介绍一下阿里云的OSS的一些简单配置和使用。
一、阿里云OSS配置
前提:你需要购买阿里云的OSS服务器,这里就不多介绍;你需要有一个备案域名,此处也不多介绍(本人使用的阿里云进行备案的域名)。
1. 阿里云OSS配置域名
1)创建bucket
2)选择tpw-bucket的“域名管理”,然后点击绑定用户域名:
3)创建域名:
此处创建二级域名进行绑定,如果你想简单,就可以选择“自动添加CNAME记录”,可以自动配置(这里我就不自动加入)。
4)域名配置cname:
创建后 得到oss访问域名“tpw-bucket.oss-cn-beijing.aliyuncs.com”,将此配置到域名解析中。
5)配置域名解析:
6) 加入测试图片,测试配置结果:
2. 配置RAM权限组
1)选择“访问控制”
2)增加oss的配置:
选择“AliyunOSSFullAccess”
此处增加RAM访问权限的原因是保护阿里云唯一的key,可以自定义RAM来使用,此处可以获得accessKeyId 和 accessKeySecret,开发时将会用到
二、代码开发
1.加入pom
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.8.3</version>
</dependency>
注意:如果缺失其他jar自己处理
2. 代码粘贴:
package com.xzz.yn.util;
import java.io.File;
import java.net.URL;
import java.util.Date;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
/**
* @ClassName: AliyunOssUtil
* @Description: 阿里云存储服务器工具类
* @author: tianpengw
* @date 2019年3月15日 下午1:47:03
*
*/
public class AliyunOssUtils {
public static String outsideUrl = "http://tpw-bucket.xxxxxxxx.com";
public static String defaultOssUrl = "tpw-bucket.oss-cn-beijing.aliyuncs.com";
public static String bucketName = "tpw-bucket";
private static String endpoint = "http://oss-cn-beijing.aliyuncs.com";
private static String accessKeyId = "XXXXXXXXXXXXXXXX";
private static String accessKeySecret = "YYYYYYYYYYYYYYYYYYYY";
/**
*
* @Description: 根据文件地址获得临时的请求地址
* @author: tianpengw
* @param objectName
* @return
*/
public static String getTemporaryOssUrl(String objectName){
String ossUrl = "";
// 创建OSSClient实例。
OSSClient ossClient = null;
try {
// 初始化OSSClient实例。
ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 设置URL过期时间为24小时。
Date expiration = new Date(new Date().getTime() + 3600 * 1000 * 24);
// 生成以GET方法访问的签名URL,访客可以直接通过浏览器访问相关内容。
URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);
ossUrl = url.toString();
return ossUrl.replace(defaultOssUrl, "tpw-bucket.xxxxxxx.com");
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(null != ossClient){
// 关闭OSSClient。
ossClient.shutdown();
}
}
return ossUrl;
}
/**
*
* @Description: 简单上传文件
* @author: tianpengw
* @param fileName
* @param objectName
*/
public static void uploadFile(String fileName,String objectName){
// 创建OSSClient实例。
OSSClient ossClient = null;
try {
// 初始化OSSClient实例。
ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 上传文件。<yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
ossClient.putObject(bucketName, objectName, new File(fileName));
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(null != ossClient){
// 关闭OSSClient。
ossClient.shutdown();
}
}
}
public static void main(String[] args) {
AliyunOssUtil.uploadFile("d:/family_logo-new1.png", "file/photo/family_logo-new1.JPG");
String url = AliyunOssUtils.getTemporaryOssUrl("file/photo/family_logo-new1.JPG");
System.out.println(url);
}
}
代码比较简单,基本没啥太大疑问;不过上传没有返回结果,不能保证上传成功。
3. 测试结果:
来源:https://blog.csdn.net/niaoer2010/article/details/89100017


猜你喜欢
- 通常C#使用基于XML的配置文件,不过如果有需要的话,比如要兼顾较老的系统,可能还是要用到INI文件。但C#本身并不具备读写INI文件的AP
- 首先从字面意思理解两个词onTouchEvent:触发触摸事件onInterceptTouchEvent:触发拦截触摸事件通过查看源代码及类
- java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。静态方法是属于类的,不是属于类的对象。所以可以直接使用类名加
- 如下所示: /** * 判断某个界面是否在前台 * * @param context
- 本文实例讲述了C#实现的文件操作封装类。分享给大家供大家参考,具体如下:最近发现群共享里面有个C# 文件操作封装类,其方法是调用Window
- controller传boolean形式值@GetMapping("/check-cart")public List&l
- 本文以实例描述了C#实现让窗体永远在窗体最前面显示的方法,具体步骤如下:1、新建一个窗体程序,添加一个Timer以及设置它可用并绑定事件。2
- 简介使用 SpringBoot 配置 FTP 服务器,上传、删除、下载文件。配置 FTP检查是否安装 vsftpdrpm -qa | gre
- JVM java虚拟机JVMjava虚拟机是一个可执行java字节码的虚拟机进程。Java虚拟机本质上就是一个程序,java源文件被编译成能
- WebService是一种跨编程语言和跨操作系统平台的远程调用技术所谓远程调用,就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一
- 什么是显式转换Explicit Conversion就是在将一种类型转换成另外一种类型时,需要额外的代码来完成这种转换。int n = 1;
- IDEA版本:2020.3具体步骤一、开启IDEA的自动编译【静态】1.File->Settings。2.直接搜索Compiler,选
- 经常进行图形界面设计的编程者肯定知道,控件在设计的时候才能随意拖动,运行的时候就不能拖动了.你肯定会问:运行时能随意拖动控件吗?答案是肯定的
- Springboot + Vue,定时任务调度的全套实现方案。这里用了quartz这个框架,实现分布式调度任务很不错,关于quarz的使用方
- 本文实例讲述了C#实现3步手动建DataGridView的方法。分享给大家供大家参考。具体如下:DataView dvCmControlIn
- 前言回想一下,在学Java时接触的正则表达式,其实Kotlin中也是类似。只不过使用Kotlin 的语法来表达,更为简洁。正则(Regex)
- 代码如下:using System; using System.Collections.Generic; using S
- 目录一、简介二、入门案例三、自定义认证逻辑四、自定义授权逻辑五、注销登录六、记住我功能七、会话管理一、简介Spring Security是一
- 01、多线程下扩容会死循环众所周知,HashMap 是通过拉链法来解决哈希冲突的,也就是当哈希冲突时,会将相同哈希值的键值对通过链表的形式存
- 这篇文章主要介绍了Java解析json报文实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可