如何使用阿里云对象存储OSS文件上传

aliyun对象存储OSS文件上传
一、注册
阿里云官网 :https://help.aliyun.com/

在这里插入图片描述
1、新建bucket (文件存储空间名称),bucket下也可以继续创建目录
在这里插入图片描述
(这里需要注意,不同分区的Endpoint是不同的,Endpoint在后续API使用过程中会用到。至于存储类型和读写权限相关设置,都结合自身情况来使用,这里以标准存储和私有权限为例进行介绍。)

2、通过短信验证码创建accessKey,保存accessKeyID和accessKeySecret:
在这里插入图片描述
二、 API使用
2.1 API地址

一般使用对象存储无非就是上传和下载文件,完整API地址如下:
https://help.aliyun.com/document_detail/32015.html?spm=5176.8466032.bucket-object.1.33ac1450TuX65y

2.2 API使用准备

Java使用很简单,直接在Maven中引用依赖,如下:

com.aliyun.oss
aliyun-sdk-oss
2.8.3

2.3 构建OSSClient实例

这里就需要用到我们上面提到的endpoint和AccessKey,构建实例内容如下所示:
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = “http://oss-cn-beijing.aliyuncs.com”;
// 使用刚刚创建的accessKeyId和accessKeySecret
String accessKeyId = “”;
String accessKeySecret = “”;

// 创建OSSClient实例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);

//todo 对OSS进行操作

// 关闭OSSClient。
ossClient.shutdown();

2.4 上传文件

上传文件常用的方式大致为两种,一种是返回可以查看文件的地址,另外一种是通过地址可以直接下载文件。
2.4.1 上传文件,返回可以预览图片的地址

上传文件有一些需要注意的地方:

1.文件名不要重复,不然会覆盖。
2.建议将不同日期的文件分别创建一个文件夹方便区分。

这里先以上传本地桌面的一个图片为例,上传后在Bucket内自动创建日期格式yyyyMMdd的文件夹存放文件,文件名按照当前时间戳加随机数的形式拼接,由于返回的URL是带有签名信息的,所以这里暂时设置过期时间为一小时,如果需要可以将时间加长。

完整内容如下所示:

package com.dalaoyang.upload;

import com.aliyun.oss.OSSClient;

import java.io.File;
import java.net.URL;
import java.security.SecureRandom;
import java.text.SimpleDateFormat;
import java.util.Date;

public class AliyunUpload {

public static void main(String[] args) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    String endpoint = "http://oss-cn-beijing.aliyuncs.com";
    String accessKeyId = "LTAIRr3alAhROGTA";
    String accessKeySecret = "******";
    String fileName = "/Users/dalaoyang/Desktop/aliyun.jpeg";
    String bucketName = "dalaoyang-test";
    // 获取文件的后缀名
    String suffixName = fileName.substring(fileName.lastIndexOf("."));
    // 生成上传文件名
    String finalFileName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + suffixName;
    String objectName = sdf.format(new Date()) + "/" + finalFileName;
    File file = new File(fileName);
    OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);

    ossClient.putObject(bucketName, objectName, file);
    // 设置URL过期时间为1小时。
    Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000);
    // 生成以GET方法访问的签名URL,访客可以直接通过浏览器访问相关内容。
    URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);
    ossClient.shutdown();
    System.out.println(url.toString());
}

}

返回地址格式如下:

https://malldianshang.oss-cn-beijing.aliyuncs.com/brand/8c9c089a-6a76-41d7-9183-ae30056d8a8blsf.jpg
在这里插入图片描述以上就是oss操作直接调用方法即可

发布了3 篇原创文章 · 获赞 14 · 访问量 1032

猜你喜欢

转载自blog.csdn.net/weixin_46122750/article/details/105135900