springboot怎么获取oss里文件的URL
时间: 2023-10-03 08:10:47 浏览: 188
在 Spring Boot 中获取 OSS 中的文件 URL,需要使用阿里云 Java SDK 的 OSS 客户端。你可以通过以下步骤来实现:
1. 引入阿里云 Java SDK 的 OSS 客户端依赖,你可以在 `pom.xml` 文件中添加以下代码:
```xml
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.11.0</version>
</dependency>
```
2. 在 Spring Boot 的配置文件中,添加 OSS 的配置信息,例如:
```yaml
aliyun:
oss:
endpoint: oss-cn-hangzhou.aliyuncs.com
access-key-id: your-access-key-id
access-key-secret: your-access-key-secret
bucket-name: your-bucket-name
```
3. 创建 OSS 客户端对象,例如:
```java
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class OSSClientUtil {
@Value("${aliyun.oss.endpoint}")
private String endpoint;
@Value("${aliyun.oss.access-key-id}")
private String accessKeyId;
@Value("${aliyun.oss.access-key-secret}")
private String accessKeySecret;
@Value("${aliyun.oss.bucket-name}")
private String bucketName;
public String getFileUrl(String objectName) {
// 创建 OSS 客户端对象
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 生成文件 URL
String fileUrl = ossClient.generatePresignedUrl(bucketName, objectName, new Date(System.currentTimeMillis() + 3600 * 1000)).toString();
// 关闭 OSS 客户端对象
ossClient.shutdown();
return fileUrl;
}
}
```
4. 调用 `getFileUrl` 方法获取文件 URL,例如:
```java
String fileUrl = ossClientUtil.getFileUrl("example.jpg");
```
上述代码中,`getObjectUrl` 方法中的三个参数分别为 OSS 存储空间的名称、对象名称和 URL 的有效期时间。其中,`objectName` 是 OSS 中存储的对象名称,可以是文件路径或文件名,例如:`images/example.jpg` 或 `example.jpg`。URL 的有效期时间可根据实际情况进行设置,这里设置为 1 小时。
阅读全文