阿里云oss文件上传java
时间: 2023-08-20 10:06:22 浏览: 182
你好!在Java中实现阿里云OSS文件上传可以使用阿里云官方提供的Java SDK。下面是一个简单的示例代码:
首先,你需要导入相关的依赖:
```java
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
```
然后,创建一个OSSClient实例,并通过该实例进行文件上传:
```java
// 设置OSS的访问密钥ID和密钥
String accessKeyId = "<your-access-key-id>";
String accessKeySecret = "<your-access-key-secret>";***
相关问题
阿里云oss文件上传java工具类
### 阿里云 OSS 文件上传 Java 工具类
为了实现阿里云 OSS 的文件上传功能,可以创建一个工具类 `AliOssUtil` 来封装上传逻辑。此工具类依赖于配置属性类 `AliOssProperties` 中定义的参数。
#### 1. 配置属性类 AliOssProperties.java
该类用于读取并保存连接到阿里云 OSS 所需的关键信息:
```java
package com.sky.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "sky.alioss")
@Data
public class AliOssProperties {
private String endpoint;
private String accessKeyId;
private String accessKeySecret;
private String bucketName;
}
```
#### 2. 工具类 AliOssUtil.java
以下是完整的工具类代码示例,实现了基本的文件上传方法:
```java
package com.sky.utils;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import com.sky.properties.AliOssProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.InputStream;
@Component
public class AliOssUtil {
@Autowired
private AliOssProperties aliOssProperties;
/**
* 将输入流中的数据作为新对象上传至指定bucket.
*/
public String uploadFile(InputStream inputStream, String fileName) {
// 创建OSS实例
try (OSS ossClient = new OSSClientBuilder().build(aliOssProperties.getEndpoint(),
aliOssProperties.getAccessKeyId(), aliOssProperties.getAccessKeySecret())) {
PutObjectRequest putObjectRequest = new PutObjectRequest(
aliOssProperties.getBucketName(), fileName, inputStream);
// 上传文件
ossClient.putObject(putObjectRequest);
// 返回访问路径
return "https://" + aliOssProperties.getBucketName() + "."
+ aliOssProperties.getEndpoint() + "/" + fileName;
}
}
}
```
上述代码展示了如何通过注入的方式获取必要的配置项,并利用这些配置来初始化 OSS 客户端以及执行具体的文件上传操作[^1]。
阿里云oss文件上传java返回路径
### 使用Java上传文件至阿里云OSS并获取返回的文件访问路径
为了实现这一目标,除了完成基本的文件上传操作外,还需要构建文件的公共访问URL。下面是一个完整的代码示例来展示如何做到这一点:
```java
import com.aliyun.oss.OSS;
import com.aliyun.oss.OssClientBuilder;
public class FileUploadExample {
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";
public static void main(String[] args) throws Exception {
try (OSS ossClient = new OssClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET)) {
java.io.File file = new java.io.File("path/to/your/file");
// 构建唯一文件名
String uniqueFileName = java.util.UUID.randomUUID().toString() + "_" + file.getName();
// 设置存储目录和文件名称组合成最终的目标键值
String targetKey = "uploads/" + uniqueFileName;
// 执行上传动作
ossClient.putObject(BUCKET_NAME, targetKey, file);
// 创建文件的公共访问链接
String url = ossClient.generatePresignedUrl(
BUCKET_NAME,
targetKey,
new java.util.Date(System.currentTimeMillis() + 3600L * 1000 * 24 * 365), // 设置有效期为一年
com.aliyun.oss.model.HttpMethod.GET).toExternalForm();
System.out.println("File uploaded successfully.");
System.out.println("Access URL: " + url);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
```
此段代码实现了文件向阿里云OSS的传输过程,并利用`generatePresignedUrl()`方法生成了一个预签名的URL用于后续访问已上传文件[^3]。
阅读全文
相关推荐














