import com.obs.services.ObsClient;
import com.obs.services.model.PutObjectRequest;
import com.obs.services.model.PutObjectResult;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@RestController
public class ImageUploadController {
@PostMapping("/upload")
public ResponseEntity<String> uploadImage(@RequestParam("image") MultipartFile file) {
try {
// 临时保存文件
File tempFile = File.createTempFile("temp-image", ".jpg");
file.transferTo(tempFile);
// OBS 配置信息
String accessKey = "your_access_key";
String secretKey = "your_secret_key";
String endPoint = "your_endpoint";
String bucketName = "your_bucket_name";
// 创建 OBS 客户端
ObsClient obsClient = new ObsClient(accessKey, secretKey, endPoint);
// 生成唯一的对象名称
String objectKey = "images/" + System.currentTimeMillis() + "-" + file.getOriginalFilename();
// 上传文件到 OBS
PutObjectRequest request = new PutObjectRequest(bucketName, objectKey, tempFile);
PutObjectResult result = obsClient.putObject(request);
obsClient.close();
return ResponseEntity.ok("图片上传成功,对象名称:" + objectKey);
} catch (IOException | RuntimeException e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("图片上传失败");
}
}
}