阿里云oss上传----sts临时授权上传

本文介绍了在项目开发中如何利用阿里云OSS进行文件上传和下载,以节省服务器空间并优化访问。通过Java后端生成STS临时凭证,前端可以直接安全地上传文件,避免流量浪费。详细步骤包括配置阿里云密钥,使用STS方式获取凭证,以及Java后端的上传实现。
摘要由CSDN通过智能技术生成

阿里云上传oss# oss上传

在我们的项目实战开发中经常会用到文件的上传和下载,但是存放到我们自己的服务器上又会很占空间,而且访问可能也会收到限制,所以说使用其他远程服务存储文件是一个很有必要的选择,我们项目因为买了阿里云的服务,所以文件的上传和下载就使用了阿里云的。
文件上传时,阿里云提供了java上传,web直传等方式,我们为了省后端到前端访问的流量,就直接使用web前端直传,为了安全后端提供前端一个安全的token以及需要的密钥等等。
1.先配置好我们公司的密钥和ID以及阿里云公用的服务等, 使用的是sts方式

public AssumeRoleResponse StsToken() {
   
        // 阿里云API的密钥Access Key ID
        String endpoint = "sts.cn-beijing.aliyuncs.com"; //使用的是sts,所以使用的域名是sts的域名
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
        String accessKeyId = "自己的key";
        String accessKeySecret = "自己的sercert";
        String roleArn = "角色";
        String roleSessionName = "角色名字(可以随意起名字)";
        String policy = "权限";
        try {
   
            //构造default profile(参数留空,无需添加Region ID)
            IClientProfile profile = DefaultProfile.getProfile("", accessKeyId, accessKeySecret);
            //用profile构造client
            DefaultAcsClient client = new DefaultAcsClient(profile);
            final AssumeRoleRequest request = new AssumeRoleRequest();
            request.setSysEndpoint(endpoint);
            request.setSysMethod(MethodType.POST);
            request.setRoleArn(roleArn);
            request.setRoleSessionName(roleSessionName);
            request.setPolicy(policy); // Optional
            request.setDurationSeconds(3600L); // 设置凭证有效时间   1小时
            final AssumeRoleResponse response = client.getAcsResponse(request);
            return response;
        } catch (com.aliyuncs.exceptions.ClientException e) {
   
            e.printStackTrace();
            //logger.info("获取stsToken失败。。[{}]", e);
        }
        return null;
    }

这就是获取临时凭证的方法。

  1. 返给前端想要的token以及key和id,bucket名字
@Autowired
OssUtil ossUtil;  
//上传文件到阿里云OSS服务器
    @RequestMapping(value = "/fileUploadSTS")
    @ResponseBody
    private void fileUploadSTS(HttpServletRequest request, HttpServletResponse response) throws Exception {
   
        try {
   
            log.info("oss文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值