zl程序教程

您现在的位置是:首页 >  Java

当前栏目

java使用阿里云OSS实现文件上传到云盘

2023-04-18 16:56:59 时间

一、进入阿里云官网的OSS管理控制台并注册账号

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。https://oss.console.aliyun.com/overview二、在Bucket列表中创建一个Bucket

 三、创建好Bucket之后打开我们的RAM访问控制

找到用户管理下的用户,创建一个新的用户,记住AccessKey ID,和AccessKezy Secret值,等下会用到

四、在我们的java项目中找到pom.xml配置依赖

    <dependency>
          <groupId>com.aliyun.oss</groupId>
          <artifactId>aliyun-sdk-oss</artifactId>
          <version>3.15.0</version>
    </dependency>

 五、将以上工作准备就绪后就开始编写我们的Controller层的接口

/**
	 * 上传文件 存储到阿里云
	 */
	@SneakyThrows
	@PostMapping("/put-aliyun-file")
	public R<BladeFile> putAliyunFile(@RequestParam MultipartFile file) {
		// Endpoint以北京为例,其它Region请按实际情况填写。
		String endpoint = "https://oss-cn-beijing.aliyuncs.com";
		// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
		/*添加自己accessKeyId值*/
		String accessKeyId = "LTAI5t9xQfD3AF********";
		/*accessKeySecret值*/
		String accessKeySecret = "ByY8ZobVIwcHzxQTiS********";
		// 填写Bucket名称,例如examplebucket。
		String bucketName = "yun****";
		// 创建OSSClient实例。
		OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
		String uuid = Func.randomUUID();
		String date = DateUtil.format(DateUtil.now(), DateUtil.PATTERN_DATE);
		String extension = FileUtil.getFileExtension(Objects.requireNonNull(file.getOriginalFilename()));

		BladeFile bladeFile = new BladeFile();
		bladeFile.setOriginalName(file.getOriginalFilename());
		bladeFile.setName(StringUtil.format("{}/{}.{}", date, uuid, extension));
		bladeFile.setLink(StringUtil.format("{}/{}/{}.{}",endpoint,bucketName,uuid, extension));

		PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName,bladeFile.getName(),file.getInputStream());
		ossClient.putObject(putObjectRequest);
		return R.data(bladeFile);
	}

 六、前端连上接口进行测试

 七、测试结果,查看自己的Bucket列表看看图片添加进去没