阿里云OSS域名配置及简单上传的示例代码

 更新时间:2020年08月10日 10:31:34   作者:此人来自火星  
这篇文章主要介绍了阿里云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. 测试结果:


到此这篇关于阿里云OSS域名配置及简单上传的示例代码的文章就介绍到这了,更多相关阿里云OSS域名配置及上传内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot使用jsoup爬取HTML的方法

    SpringBoot使用jsoup爬取HTML的方法

    jsoup 是一款 Java 的 HTML 解析器,它提供了一套非常便利的 API,可通过 DOM、CSS 通过类似于 JQuery 的操作方法来取出和操作数据,这篇文章主要介绍了SpringBoot使用jsoup爬取HTML,需要的朋友可以参考下
    2024-02-02
  • java WebSocket实现聊天消息推送功能

    java WebSocket实现聊天消息推送功能

    这篇文章主要为大家详细介绍了java WebSocket实现聊天消息推送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 使用SpringBoot获取所有接口的路由

    使用SpringBoot获取所有接口的路由

    这篇文章主要介绍了使用SpringBoot获取所有接口的路由方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java提取字符串中数字string以及获取字符串中的整数或小数

    java提取字符串中数字string以及获取字符串中的整数或小数

    这篇文章主要给大家介绍了关于java提取字符串中数字string以及获取字符串中的整数或小数的相关资料,需要的朋友可以参考下
    2023-08-08
  • mapstruct的用法之qualifiedByName示例详解

    mapstruct的用法之qualifiedByName示例详解

    qualifiedByName的意思就是使用这个Mapper接口中的指定的默认方法去处理这个属性的转换,而不是简单的get set,今天通过本文给大家介绍下mapstruct的用法之qualifiedByName示例详解,感兴趣的朋友一起看看吧
    2022-04-04
  • Java中的Semaphore信号量详解

    Java中的Semaphore信号量详解

    这篇文章主要介绍了Java中的Semaphore信号量详解,Semaphore(信号量)是用来控制同时访问特定资源的线程数量,通过协调各个线程以保证合理地使用公共资源,需要的朋友可以参考下
    2023-12-12
  • java Spring的启动原理详解

    java Spring的启动原理详解

    大家好,本篇文章主要讲的是java Spring的启动原理详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 基于Spring概念模型:PathMatcher 路径匹配器

    基于Spring概念模型:PathMatcher 路径匹配器

    这篇文章主要介绍了Spring概念模型:PathMatcher 路径匹配器,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java使用反射创建对象示例

    Java使用反射创建对象示例

    这篇文章主要介绍了Java使用反射创建对象,结合实例形式分析了java使用反射创建对象的具体实现方法及相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • spring中使用mybatis plus连接sqlserver的方法实现

    spring中使用mybatis plus连接sqlserver的方法实现

    这篇文章主要介绍了spring中使用mybatis plus连接sqlserver的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论