谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试

文章目录

一,Java中上传文件到阿里云OSS

1,整合阿里云OSS

product模块中添加OSS依赖。

clike 复制代码
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.17.4</version>
</dependency>

2,测试上传文件

clike 复制代码
public void testUpload() throws ClientException {
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "gulimallfuck";
        // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
        String objectName = "1234.png";
        // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。
        // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
        String filePath= "C:\\Users\\Lenovo\\Desktop\\1.png";

        // 创建OSSClient实例。
        String accessKeyID = "LTAI5tCxH6terewer5dzq7uau";
        String accessKeySecret = "fzQdfdsfdfaffdffaRopvBC40d1202jgb";
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyID, accessKeySecret);

        try {
            // 创建PutObjectRequest对象。
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));
           
            // 上传文件。
            PutObjectResult result = ossClient.putObject(putObjectRequest);
        } catch (Exception oe) {
           oe.printStackTrace();
        }
    }

这是OSS参考文档中的代码,需要修改的地方:

  • endpoint

    在OSS控制台查找endpoint。
  • accessKeySecret 和 accessKeyId
    阿里云控制台,鼠标移至右上角头像处。

    下列弹窗点击AccessKey 管理,进入一个页面后会有如下弹窗,选择开始使用子用户

    创建用户。

    在用户列表中点击刚创建的用户,进入新界面,点击创建AccessKey
  • 选择一个文件,在代码中配置路径。

运行测试用例,上传文件。

上传完成后,在文件列表中,可以看到刚刚上传的文件。

二,Java中整合阿里云OSS服务指南

引言

随着云计算的发展,越来越多的应用选择将数据存储在云服务提供商的平台上。阿里云对象存储服务(Object Storage Service,简称OSS)提供了简单高效、安全可靠、低成本的数据存储服务,非常适合存储大量图片、视频、日志数据等非结构化数据。

本文将指导你如何在Java项目中整合阿里云OSS服务,实现文件的上传、下载等功能,并给出一些最佳实践建议。

准备工作

1. 注册阿里云账号

如果你还没有阿里云账号,首先需要注册一个。注册完成后,你可以访问阿里云控制台,并在其中创建OSS Bucket。

2. 获取Access Key

为了能够使用OSS API,你需要获取Access Key ID 和 Access Key Secret。这些密钥用于身份验证,确保只有授权的用户才能访问你的Bucket。

3. 添加依赖

为了方便地使用OSS SDK,我们需要在项目中引入相应的依赖。如果你使用的是Maven,可以在pom.xml文件中加入以下依赖:

xml 复制代码
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.10.3</version>
</dependency>

如果你使用Gradle,可以添加如下依赖:

groovy 复制代码
dependencies {
    implementation 'com.aliyun.oss:aliyun-sdk-oss:3.10.3'
}

实现OSS客户端

1. 初始化OSSClient

创建一个OSSClient实例来连接OSS服务。这个实例是线程安全的,可以在应用程序中重复使用。

java 复制代码
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

public class OSSClientUtil {

    private static final String endpoint = "YourEndpoint"; // 替换为你所在区域的endpoint
    private static final String accessKeyId = "YourAccessKeyId";
    private static final String accessKeySecret = "YourAccessKeySecret";

    public static OSS getInstance() {
        return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    }
}

2. 创建Bucket

创建Bucket是使用OSS服务的第一步。你可以使用createBucket方法来创建一个新的Bucket。

java 复制代码
public void createBucket(String bucketName) {
    OSS ossClient = OSSClientUtil.getInstance();
    if (!ossClient.doesBucketExist(bucketName)) {
        ossClient.createBucket(bucketName);
    }
    ossClient.shutdown();
}

3. 上传文件

使用putObject方法可以将本地文件上传到指定的Bucket中。

java 复制代码
public void uploadFile(String bucketName, String objectName, File file) {
    OSS ossClient = OSSClientUtil.getInstance();
    ossClient.putObject(bucketName, objectName, file);
    ossClient.shutdown();
}

4. 下载文件

使用getObject方法可以从OSS中下载文件。

java 复制代码
public void downloadFile(String bucketName, String objectName, File destFile) {
    OSS ossClient = OSSClientUtil.getInstance();
    ossClient.getObject(new GetObjectRequest(bucketName, objectName), destFile);
    ossClient.shutdown();
}

5. 删除文件

使用deleteObject方法可以删除指定的文件。

java 复制代码
public void deleteFile(String bucketName, String objectName) {
    OSS ossClient = OSSClientUtil.getInstance();
    ossClient.deleteObject(bucketName, objectName);
    ossClient.shutdown();
}

最佳实践

  • 安全性:确保Access Key ID 和 Access Key Secret的安全,避免泄露。
  • 权限管理:使用RAM用户而非主账号的密钥,为不同的应用程序分配最小必要的权限。
  • 异常处理:处理好网络中断、服务器不可达等情况下的异常。
  • 日志记录:记录关键操作的日志以便追踪问题和审计。
  • 成本控制:定期清理不再使用的文件,利用OSS生命周期管理策略自动转换存储类别或删除过期文件。

结语

通过上述步骤,你可以在Java项目中轻松地整合阿里云OSS服务,实现文件的上传、下载等功能。阿里云OSS提供了丰富的API和工具,可以根据你的业务需求进一步定制和扩展。


希望这篇博客能帮助你在Java项目中顺利整合阿里云OSS服务。如果有任何疑问或需要进一步的帮助,请随时提问!

相关推荐
南城花随雪。8 分钟前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了9 分钟前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度11 分钟前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮13 分钟前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
gma9991 小时前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️1 小时前
华为ASP与CSP是什么?
服务器·前端·数据库
Yz98762 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
苏-言2 小时前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
Ljw...2 小时前
索引(MySQL)
数据库·mysql·索引
菠萝咕噜肉i2 小时前
超详细:Redis分布式锁
数据库·redis·分布式·缓存·分布式锁