批量上传图片或视频到亚马逊云存储springboot代码
时间: 2023-12-13 10:03:59 浏览: 43
以下是使用Spring Boot实现批量上传图片或视频到亚马逊云存储的代码示例:
首先需要在pom.xml文件中添加Amazon S3 SDK的依赖:
```xml
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.1003</version>
</dependency>
```
然后在配置文件中添加Amazon S3的配置信息:
```yaml
amazon:
s3:
access-key: your-access-key
secret-key: your-secret-key
region: your-region
bucket-name: your-bucket-name
```
接下来编写上传图片或视频的代码:
```java
@Service
public class AmazonS3Service {
@Autowired
private AmazonS3 amazonS3;
@Value("${amazon.s3.bucket-name}")
private String bucketName;
public void uploadFiles(List<MultipartFile> files) {
for (MultipartFile file : files) {
String fileName = file.getOriginalFilename();
String fileType = file.getContentType();
try {
byte[] bytes = file.getBytes();
String key = UUID.randomUUID().toString() + "/" + fileName;
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(fileType);
metadata.setContentLength(bytes.length);
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, new ByteArrayInputStream(bytes), metadata);
amazonS3.putObject(putObjectRequest);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
在这个示例中,我们通过注入AmazonS3客户端对象来使用Amazon S3服务。在uploadFiles方法中,我们循环遍历上传的文件列表,创建一个随机的文件名作为S3对象的键,并将文件的内容和元数据作为PutObjectRequest的参数,最后通过amazonS3.putObject方法将文件上传到S3中。
您可以在您的控制器中使用AmazonS3Service来处理上传文件的请求,例如:
```java
@RestController
public class FileUploadController {
@Autowired
private AmazonS3Service amazonS3Service;
@PostMapping("/upload")
public void uploadFiles(@RequestParam("files") List<MultipartFile> files) {
amazonS3Service.uploadFiles(files);
}
}
```
以上就是使用Spring Boot实现批量上传图片或视频到亚马逊云存储的代码示例,希望可以帮助到您。