阿里云OSS基于java使用详解

 更新时间:2020年07月12日 16:01:37   作者:小雷雷学java  
这篇文章主要介绍了阿里云OSS基于java使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

近几年,云图片服务器五花八门,越来越多,有腾讯云,阿里云,又拍云,华为云等等,但是使用了这么多年,我还是感觉阿里云图片服务器oss比较稳定,访问速度也比较快,因此我在这里手把手教给你如何使用阿里云oss服务;

一、使用之前,我们还是先来搞清楚阿里云oss使用的原理吧:

其实调用方式也就两种,一种是直接客户端调用阿里云提供的服务器进行上传,一种是通过服务器间接上传,我们来分析以下优缺点吧:

上传方式优点缺点直接调用上传速度快,能直接快速上传到阿里云服务器,不需要中转可能会不安全,暴露核心配置信息间接调用安全,appkey和secret不用暴露在客户端相对安全,速度可能会有点慢

为了安全起见,我们还是采用服务端间接上传的方式,这种方式为了规避上传速度,可以在阿里云服务器端进行局域网上传。

二、下面我们就一起进入java版本的OSS上传实战中吧:

1.在项目中引用maven依赖,如果不是maven工程的,请自行到阿里云oss上面下载对应的jar;

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

2.封装对应的工具类,另外,endPoint 有两种方式,一种为服务端通过外网上传,一种为服务端通过局域网进行上传,使用的过程中可以自行选择:

public class OssUtil {
 
  //这里的配置可以在properties或者yml中进行配置
  @Value("${oss.accessKeyId}")
  private String accessKeyId;
 
  @Value("${oss.accessKeySecret}")
  private String accessKeySecret;
 
  @Value("${oss.bucketName}")
  private String bucketName;
 
  @Value("${oss.endPoint}")
  private String endPoint ;
 
//文件直接上传的方式,filename 为定义的文件名字
  public void upload(File obj, String fileName) {
    OSSClient ossClient = null;
    try {
      ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret);
      ossClient.putObject(bucketName, fileName, obj);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (ossClient != null)
        ossClient.shutdown();
    }
  }
 
 
//文件字节方式进行上传,filename 为定义的文件名字
  public void upload(byte[] array, String fileName) {
    long start = System.currentTimeMillis();
    OSSClient ossClient = null;
    try {
      ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret);
      ossClient.putObject(bucketName, fileName, new ByteArrayInputStream(array));
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (ossClient != null)
        ossClient.shutdown();
      log.info("上传时间:{}ms", (System.currentTimeMillis() - start));
    }
  } 
}

到此这篇关于阿里云OSS基于java使用详解 的文章就介绍到这了,更多相关阿里云OSS基于java内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java线程中的notifyAll唤醒操作(推荐)

    Java线程中的notifyAll唤醒操作(推荐)

    这篇文章主要介绍了Java线程中的notifyAll唤醒操作,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • Java类和成员上的一些方法实例代码

    Java类和成员上的一些方法实例代码

    这篇文章主要介绍了Java类和成员上的一些方法实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 一文教你学会如何使用MyBatisPlus

    一文教你学会如何使用MyBatisPlus

    本篇文章,我们通过 MyBatis Plus 来对一张表进行 CRUD 操作,来看看是如何简化我们开发的,文中通过代码示例介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-05-05
  • 编译期动态替换三方包中的Class文件过程详解

    编译期动态替换三方包中的Class文件过程详解

    这篇文章主要为大家介绍了编译期动态替换三方包中的Class文件过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • java实现身份证号码验证的示例代码

    java实现身份证号码验证的示例代码

    这篇文章主要为大家详细介绍了如何利用java语言实现身份证号码验证的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-09-09
  • Java实现FTP文件的上传和下载功能的实例代码

    Java实现FTP文件的上传和下载功能的实例代码

    FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。接下来通过本文给大家实例讲解Java实现FTP文件的上传和下载功能,需要的的朋友一起看看吧
    2016-11-11
  • Java 实现限流器处理Rest接口请求详解流程

    Java 实现限流器处理Rest接口请求详解流程

    在工作中是否会碰到这样的场景,高并发的请求但是无法全部执行,需要一定的限流。如果你是使用的微服务框架,比如SpringCloud,可以使用Gateway增加限流策略来解决。本篇文章是在没有框架的情况实现限流器
    2021-11-11
  • Java使用ChatGPT的API详解

    Java使用ChatGPT的API详解

    OpenAI API 几乎可以应用于任何涉及理解或生成自然语言或代码的任务。本文将带你们介绍Java如何使用ChatGPT的API,感兴趣的同学可以跟着小编一起来学习
    2023-04-04
  • 优化常见的java排序算法

    优化常见的java排序算法

    这篇文章主要介绍了Java编程中快速排序算法的实现及相关算法优化,快速排序算法的最差时间复杂度为(n^2),最优时间复杂度为(n\log n),存在优化的空间,需要的朋友可以参考下
    2021-07-07
  • 教你Spring如何使用三级缓存解决循环依赖

    教你Spring如何使用三级缓存解决循环依赖

    这篇文章主要介绍了Spring使用三级缓存解决循环依赖的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03

最新评论