文件上传阿里云()

//上传apk
@ResponseBody
@RequestMapping("/uploadApk")
@RequiresPermissions(“sys:uploadApk:uploadApk”)
public R getToken(Integer type, MultipartFile file, HttpServletRequest request) throws IOException {

    //上传文件到本服务器
    InputStream inputStream = file.getInputStream();
    //定义文件名
    String fileName = "";
    //获取原始文件名
    String originalFilename = file.getOriginalFilename();
    //获取扩展名
    String extendName = originalFilename.substring(originalFilename.lastIndexOf("."));
    String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
    fileName = uuid + "_" + originalFilename;
    //上传的文件目录
    //String realPath = request.getSession().getServletContext().getRealPath("/uploads");
    /*
            type=100安卓
             type=101 iphone手机
             type=102安卓pad
             type=103苹果pad

     */

  //本地服务器存储路径
    String realPath = fileUploadServiceImpl.getDdir(type);


    //String dataPath = new SimpleDateFormat("yyyy-MM-dd").format(new Date());

    File f = new File(realPath);

    if (!f.exists()) {
        f.mkdirs();
    }
    file.transferTo(new File(f,fileName));

    //文件在服务器地址
    String filePath = realPath + "/"  + fileName;
    System.out.println(filePath);

    JSONObject object = getOssTokenImpl.getToken(extendName);
    /**
     * {
     * 	"success": true,
     * 	"object": {
     * 		"securityToken": "CAIS+QF1q6Ft5B2yfSjIr47yD+Llu6VmxZa7UGHwnk4nSd9DibDzuzz2IH9EdXhqCeEatfw3n25X6/kdlrh0UIRyXVbJY8pg2ckIqFP6MtJlP3kpXvlW5qe+EE2/VjTZvqaLEcibIfrZfvCyESOm8gZ43br9cxi7QlWhKufnoJV7b9MRLGLaBHg8c7UwHAZ5r9IAPnb8LOukNgWQ4lDdF011oAFx+wgdgOadupTMt0GC0Q2glLRM/tWhe8aeApMybMslYbCcx/drc6fN6ilU5iVR+b1+5K4+omiX74DHUwgNuE3eaLSLr4IwNm5+fbMxH69JquTsNTqUWVoNWu8agAExq4joER4LFjxVj29mS/M97WgBgPsP+1salEjcl+Wg785PgRAemS5lpWr3fKV70cKkrCA875PHZy6H0ZOSd//w+IR/MaweP6sXajWnQKdymifYzYYswc2hJGEoGQKTs81HPTbRqpudFg+vCFQOiYCvSxDwta27IQyugm2DAOfaxA==",
     * 		"ossEndpoint": "https://oss-cn-beijing.aliyuncs.com",
     * 		"internal": false,
     * 		"ossAccessSecret": "GfqPSyrLnqunqbE23P7gQUUiDh66HPSv1nCUFLZH4TJz",
     * 		"ossBucket": "melotedu",
     * 		"savePath": "course/materials/eaaabb51a726441dab5f58321e82ca6d.ppt",
     * 		"expiration": "2019-10-12T06:11:00Z",
     * 		"ossDomain": "https://melotedu.oss-cn-beijing.aliyuncs.com",
     * 		"ossAccessKey": "STS.NMGDXQVzGrTPRGAzNrEPofuXY",
     * 		"ossRoleArn": "acs:ram::1853458263119816:role/ossclient",
     * 		"ossRegion": "cn-beijing"
     *        }
     * }
     */
    if(object.getBoolean("success")==true){
        //获取各个参数
        String ossBucket = object.getJSONObject("object").getString("ossBucket");
        String ossEndpoint = object.getJSONObject("object").getString("ossEndpoint");
        String ossAccessKey = object.getJSONObject("object").getString("ossAccessKey");
        String ossAccessSecret = object.getJSONObject("object").getString("ossAccessSecret");
        String securityToken = object.getJSONObject("object").getString("securityToken");
        String objectName = object.getJSONObject("object").getString("savePath");
        String domain = object.getJSONObject("object").getString("ossDomain");
        System.out.println(object);
        //上传到阿里服务器
        FileDO byCondition = fileUploadServiceImpl.findByCondition(type);

        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = ossEndpoint;
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
        String accessKeyId = ossAccessKey;
        String accessKeySecret = ossAccessSecret;

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret, securityToken);
        //判断阿里服务器是否有数据了,有删除
        if(byCondition!=null){
            boolean found = ossClient.doesObjectExist(ossBucket, byCondition.getUrl().substring(byCondition.getUrl().lastIndexOf(domain)+domain.length()+1));
            if(found == true){
                // 删除文件。
                ossClient.deleteObject(ossBucket, byCondition.getUrl().substring(byCondition.getUrl().lastIndexOf(domain)+domain.length()+1));
            }
        }

        // 上传文件。<yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
        ossClient.putObject(ossBucket, objectName, new File(filePath));

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


        String lastUrl = domain + "/" + objectName;
        //删除本地的上传的文件

        if(f.exists()){
            if(f.isFile()){
                boolean delete = f.delete();
            }else{
                File[] files = f.listFiles();
                for(File filee:files){
                    if(filee.exists() && filee.isFile()){
                        boolean delete = filee.delete();
                    }
                }
            }
        }



        //存储数据库
        FileDO fileDO = new FileDO();
        fileDO.setType(type);
        fileDO.setCreateDate(new Date());
        fileDO.setUrl(lastUrl);

        if(byCondition!=null){
            fileDO.setId(byCondition.getId());
        }

        fileUploadServiceImpl.save(fileDO);



        return  R.ok().put("fileName", lastUrl);
    }else{
        //没有获得token
        return R.error("上传失败");
    }



}
要将文件上传阿里云服务器,可以使用以下步骤: 1. 远程登录阿里云服务器。 2. 在云服务器上下载并安装宝塔软件,该软件可以提供图形化界面来管理服务器。 3. 在云服务器上打开宝塔网址(https://www.bt.cn/),下载并安装宝塔软件。宝塔软件支持Windows和Linux系统。 如果你想使用Java来下载https文件并上传到阿里云OSS服务器,可以参考以下步骤: 1. 使用Java代码实现下载https文件并保存在本地。 2. 导入oss2包,该包是连接阿里云OSS的工具。 3. 获取阿里云OSS的访问密钥(APPID和APPSECRET)。 4. 创建oss2.Auth对象,使用访问密钥进行身份验证。 5. 指定连接的地址(endpoint)和存储桶(bucket)名称。 6. 创建oss2.Bucket对象,在指定的存储桶中进行操作。 7. 使用bucket.put_object_from_file方法将本地文件上传阿里云OSS服务器。 8. 根据需要,可以设置文件的过期时间和访问权限。 9. 上传成功后,可以获取该文件在阿里云OSS服务器上的访问URL。 如果你想使用Python来上传文件阿里云OSS服务器,可以参考以下步骤: 1. 使用Python代码实现文件上传功能。 2. 导入oss2包,该包是连接阿里云OSS的工具。 3. 获取阿里云OSS的访问密钥(APPID和APPSECRET)。 4. 创建oss2.Auth对象,使用访问密钥进行身份验证。 5. 指定连接的地址(endpoint)和存储桶(bucket)名称。 6. 创建oss2.Bucket对象,在指定的存储桶中进行操作。 7. 使用bucket.put_object_from_file方法将本地文件上传阿里云OSS服务器。 8. 根据需要,可以设置文件的过期时间和访问权限。 9. 上传成功后,可以获取该文件在阿里云OSS服务器上的访问URL。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [本地上传文件阿里云服务器的方法](https://blog.csdn.net/u014125025/article/details/123309894)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java下载https文件并上传阿里云oss服务器](https://download.csdn.net/download/weixin_38597990/12743743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [文件上传(三)阿里云上传文件](https://blog.csdn.net/w_t_y_y/article/details/89518227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值