日常分享 - 【代码】阿里云服务器文件上传、下载(ali-OOS)

该文章详细展示了如何在Java中使用阿里云OSS进行文件上传(包括本地和流式)及下载,涉及了必要的API调用和配置参数。

上传1

// 域名网点
private static final String endpoint="oss-cn-xxx.aliyuncs.com";
// 阿里云的 accessKeyId
private static final String accessKeyId="LTAI4GxxxLkdx3wkxxx99xx";
// 阿里云的 accessKeySecret
private static final String accessKeySecret="BxxxGq0xxxHrdi0pxxxq3HruB";
// bucket的name名
private static final String bucketName="lizq-123";
// 保存的”目录名“
private static final String objectName="test1";

public String upload(@RequestParam("file")MultipartFile multipartFile) throws Exception {
    // 得到file上传文件名的尾缀
    String FileType = multipartFile.getOriginalFilename().substring(
                            multipartFile.getOriginalFilename().lastIndexOf("."), 									multipartFile.getOriginalFilename().length());
    // 新文件名
    String fileName = UUID.randomUUID().toString().replace("-", "") + FileType;
    // 获得当前账户电脑的 系统名
    String osName = System.getProperty("os.name");
    String filePath = "";
    if (osName.startsWith("Win")) { //判断电脑系统
    filePath = "D:/";
    } else {
    filePath = "/tmp/";
    }
    File tempFile = new File(filePath);
    if (!tempFile.exists()) {
    	tempFile.mkdirs();
    }
    // D:/ 文件
    File destFile = new File(filePath + fileName);
    multipartFile.transferTo(destFile);// 下载到本地
    //定义上传到服务器的OSS  域名、服务器的keyid和secret
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    // 上传流  yourBucketName、yourObjectName、需要上传的本地文件
    PutObjectRequest putObjectRequest =
    new PutObjectRequest(bucketName, objectName, destFile);
    // 如果需要上传时设置存储类型与访问权限,请参考以下示例代码。
    // ObjectMetadata metadata = new ObjectMetadata();
    // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS,StorageClass.Standard.toString());
    // metadata.setObjectAcl(CannedAccessControlList.Private);
    // putObjectRequest.setMetadata(metadata);
    // 上传服务器
    ossClient.putObject(putObjectRequest);
    // 关闭流
    ossClient.shutdown();
    // 删除本地文件
    destFile.delete();

    return "11111111";
}

上传2(流)

public String upload(@RequestParam("file")MultipartFile multipartFile) throws Exception {
    // file上传文件名
    String fileName = multipartFile.getOriginalFilename();
    //定义上传到服务器的OSS  域名、服务器的keyid和secret
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    // 上传流  yourBucketName、yourObjectName、需要上传的本地文件
    PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, 															multipartFile.getInputStream());
    int filesize = 10000*1024*10; // 1kb * 1024 *10 = 10MB
    // 如果需要上传时设置存储类型与访问权限,请参考以下示例代码。
    // ObjectMetadata metadata = new ObjectMetadata();
    // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS,StorageClass.Standard.toString());
    // metadata.setObjectAcl(CannedAccessControlList.Private);
    // putObjectRequest.setMetadata(metadata);
    // 上传服务器
    ossClient.putObject(putObjectRequest);
    // 关闭流
    ossClient.shutdown();
    
    return "11111111";
}

下载

@PostMapping("download")
@ResponseBody
public static void download(String fileName) {
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

// 下载区分系统(window、linux)

// 下载OSS文件到本地文件。如果指定的本地文件存在会覆盖,不存在则新建。
ossClient.getObject(new GetObjectRequest(bucketName, objectName),new File("D:\\aaaaaa"));

// 关闭OSSClient。
ossClient.shutdown();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bilibili_架构师九哥

欢迎您的观看,留点什么吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值