OSS阿里云

发布于:2025-06-25 ⋅ 阅读:(20) ⋅ 点赞:(0)

登录阿里云

在这里插入图片描述

打开对象存储OSS

在这里插入图片描述

创建Bucket,设置名字

在这里插入图片描述

进入Bucket,新建目录

在这里插入图片描述

设置AccessKey—>点击头像—>AccessKey管理

RAM授权

在这里插入图片描述

新建保存accessKey和secret

在这里插入图片描述

OSS上传工具类

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

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSBuilder;
import com.aliyun.oss.OSSClientBuilder;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.URL;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

/**
 * OSS文件上传工具类
 */
public class OSSUtil {

    // Endpoint以杭州为例,其它Region请按实际情况填写。
    private static String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
    // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建。
    private static String accessKeyId = "xxx";
    private static String accessKeySecret = "xx";
    private static String bucketName = "xx";
    //目录名
    public static String dir = "images";

    /**
     * 文件上传
     * @param inputStream
     * @param fileName
     */
    public static void upload(InputStream inputStream, String fileName){
        OSS oss = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        oss.putObject(bucketName,dir +"/"+ fileName,inputStream);
        oss.shutdown();
    }

    /**
     * 获得文件URL
     * @param fileName
     * @return
     */
    public static String getURL(String fileName){
        OSS oss = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        //设置过期时间
        LocalDateTime time = LocalDateTime.now().plusDays(100);
        Date expiration = Date.from(time.atZone( ZoneId.systemDefault()).toInstant());
        URL url = oss.generatePresignedUrl(bucketName, dir +"/"+ fileName, expiration);
        oss.shutdown();
        return url.toString();
    }

    public static void main(String[] args) throws FileNotFoundException {
        OSSUtil.upload(new FileInputStream("D:\\images\\3.jpg"),"3.jpg");
        System.out.println(OSSUtil.getURL("3.jpg"));
    }
}

控制器

@Api("上传接口")
@RestController
public class UploadController {

    @ApiOperation("上传文件")
    @PostMapping("/upload")
    public ResponseResult<String> upload(MultipartFile file) throws IOException {
        //上传OSS
        OSSUtil.upload(file.getInputStream(),file.getOriginalFilename());
        //获得url
        String url = OSSUtil.getURL(file.getOriginalFilename());
        return ResponseResult.ok(url);
    }
}


网站公告

今日签到

点亮在社区的每一天
去签到