java实现上传文件到oss

目录

一.简介和准备工作

1.1什么是oss

1.2准备环境

1.2.1 jar引入

  1.2.2 yml配置文件配置

二.代码演示

2.1.上传本地文件到oss

2.2创建工具类上传

三.总结

3.1 oss优点

 3.2 oss缺点


一.简介和准备工作

1.1什么是oss

   OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。它是面向Internet应用设计的分布式存储服务,支持RESTful API,可以在任何时间、任何地点、任何互联网设备上进行上传、下载、管理和分享数据

1.2准备环境

1.2.1 jar引入

准备新上传文件的开发环境--安装sdk, 这里就不详细介绍sdk安装了, 相信Java的小伙办都知道如何安装.

在Java项目中使用OSS,需要通过Maven引入OSS SDK。

以下是使用Maven添加依赖的示例:

<dependencies>
    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>LATEST</version>
    </dependency>
</dependencies>
  1.2.2 yml配置文件配置
oss:
  host: http://xxxx.oss-cn-shenzhen.aliyuncs.com
  bucketName: xxxx-uxm
  endpoint: oss-cn-shenzhen.aliyuncs.com
  accessKeyId: xxxx6rZ7etOfxxx
  accessKeySecret: xxxxxxxxxLc8NUoTTrmxxxxxxxxx

二.代码演示

2.1.上传本地文件到oss

public static void uploadFileToOSS() {
    // Endpoint以"其他"为例,其它Region请按实际情况填写。
    String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    // AccessKeyId和AccessKeySecret是OSS的访问密钥,可在阿里云控制台上创建和查看。
    String accessKeyId = "<yourAccessKeyId>";
    String accessKeySecret = "<yourAccessKeySecret>";
    String bucketName = "<yourBucketName>";
    String objectName = "<yourObjectName>";
    String filePath = "<yourLocalFilePath>";

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

    try {
        File file = new File(filePath);

        // 上传文件流。
        InputStream inputStream = new FileInputStream(file);
        ossClient.putObject(bucketName, objectName, inputStream);

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

        System.out.println("文件上传成功!");

    } catch (Exception e) {
        e.printStackTrace();
    }
}

2.2创建工具类上传

工具类:


     * 上传文件
     * @param file
     * @return
     */
    public Object upload(MultipartFile file) {
        if (file.isEmpty()) {
            throw new ServiceException("上传文件不能为空");
        }
        if (!checkFileSize(file.getSize(), BaseConstant.LEN, BaseConstant.UNIT_M)) {
            throw new ServiceException("上传文件大小不能超过10M");
        }
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        // 上传文件流。
        // 保存路径,注意:这里不要以 / 或 \ 开头
        String path = new SimpleDateFormat("yyyyMMdd").format(new Date());
        String originalFilename = file.getOriginalFilename();
        String fileName = path + "/" + UUID.randomUUID().toString().replace("-", "") + originalFilename.substring(originalFilename.lastIndexOf("."));
        try {
            ossClient.putObject(bucketName, fileName, file.getInputStream());
        } catch (IOException e) {
            throw new ServiceException("上传失败" + e.getMessage());
        }
        // 关闭OSSClient。
        ossClient.shutdown();
        return host + "/" + fileName;
}

三.总结

3.1 oss优点

  1. 稳定可靠:对象存储具有多重冗余架构设计;且基于高可用架构设计,消除单节点故障,跨数据中心的副本冗余,能够保障服务的高可用性,确保数据业务的持续性;
  2. 安全合规:支持服务端加密、客户端加密、防盗链、IP黑白名单、细粒度权限管控、日志审计、WORM特性,并获得多项合规认证,满足企业数据安全与合规要求;

 3.2 oss缺点

oss法维护传统数据库。对象存储不能够按片段更改数据。只能修改整个对象,这在很大程度上会影响性能。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java实现File文件上传到OSS的示例代码: ``` import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectResult; import java.io.File; public class OSSFileUploader { // 阿里云 OSS 信息 private static final String ENDPOINT = "your-endpoint"; private static final String ACCESS_KEY_ID = "your-access-key-id"; private static final String ACCESS_KEY_SECRET = "your-access-key-secret"; private static final String BUCKET_NAME = "your-bucket-name"; // 上传文件OSS public static void uploadFile(File file) { // 创建 OSS 客户端 OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET); // 创建 PutObjectRequest 对象 PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKET_NAME, file.getName(), file); // 上传文件OSS PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest); // 打印上传结果 System.out.println("File uploaded: " + putObjectResult.getETag()); // 关闭 OSS 客户端 ossClient.shutdown(); } public static void main(String[] args) { // 上传本地文件 File file = new File("your-local-file-path"); uploadFile(file); } } ``` 需要将上述代码中的 `your-endpoint`、`your-access-key-id`、`your-access-key-secret` 和 `your-bucket-name` 替换为自己的阿里云 OSS 相关信息,将 `your-local-file-path` 替换为要上传的本地文件路径。执行 `uploadFile()` 方法即可将本地文件上传到 OSS

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值