前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云 cos 上传文件 后 0kb?怎么解决?

腾讯云 cos 上传文件 后 0kb?怎么解决?

原创
作者头像
用户8618167
修改2021-06-15 18:02:00
6.6K0
修改2021-06-15 18:02:00
举报
文章被收录于专栏:用户8618167的专栏
上传上去后出现okb
上传上去后出现okb
代码语言:javascript
复制
@RequestMapping(value = "/tengxun", method = RequestMethod.POST)
    @ApiOperation(value = "从腾讯云上,上传视频")
    @ResponseBody
    public void Upload(@RequestParam(value = "file") MultipartFile file, HttpSession session) {

        String oldFileName = file.getOriginalFilename();
        System.out.println("老的本地地址"+oldFileName);
        String eName = oldFileName.substring(oldFileName.lastIndexOf("."));
//        String newFileName = UUID.randomUUID() + eName;

//        System.out.println("新的文件地址"+newFileName);
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH);
        int day = cal.get(Calendar.DATE);



        // 简单文件上传, 最大支持 5 GB, 适用于小文件上传, 建议 20 M 以下的文件使用该接口
        // 大文件上传请参照 API 文档高级 API 上传
//        File localFile = null;
//        localFile = File.createTempFile("temp", null);
//        file.transferTo(localFile);
//        // 指定要上传到 COS 上的路径
        System.out.println("Prefix前缀"+cosConfigProperties);
//        String key = "/" + cosConfigProperties.getPrefix() + "/" + year + "/" + month + "/" + day + "/" + newFileName;
        String key = "/" + cosConfigProperties.getPrefix() + "/" + year + "/" + month + "/" + day + "/" + oldFileName;
        System.out.println("key"+cosConfigProperties.getSecretkey());
        //        String key = "aaa/bbb.txt";
//        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
        System.out.println("secretKey"+cosConfigProperties.getSecretkey());
        System.out.println("secreteId"+cosConfigProperties.getSecretid());
        COSCredentials cred = new BasicCOSCredentials(cosConfigProperties.getSecretid(),cosConfigProperties.getSecretkey());
        System.out.println("地区"+cosConfigProperties.getRegion());
        ClientConfig clientConfig = new ClientConfig(new Region(cosConfigProperties.getRegion()));
        COSClient cosclient = new COSClient(cred, clientConfig);
//        String bucketName = "mybucket-1251668577";
        ExecutorService threadPool = Executors.newFixedThreadPool(32);
        TransferManager transferManager = new TransferManager(cosclient, threadPool);
        File localFile = null;

        try {
            localFile = File.createTempFile(cosConfigProperties.getPrefix(), null);
            PutObjectRequest putObjectRequest = new PutObjectRequest(cosConfigProperties.getBucketname(), key, localFile);
            long startTime = System.currentTimeMillis();
            Upload upload = transferManager.upload(putObjectRequest);
            showTransferProgress(upload);
            UploadResult uploadResult = upload.waitForUploadResult();
            long endTime = System.currentTimeMillis();
            System.out.println("used time: " + (endTime - startTime) / 1000L);
            //https://uminsi-1305874324.cos.ap-nanjing.myqcloud.com
            // /uminsi/2021/5/15/8de89f89-0faf-4b58-8020-f33ccb910004.avi
            System.out.println(uploadResult.getETag());
            URL url=cosclient.generatePresignedUrl( cosConfigProperties.getBucketname()+ "-" + cosConfigProperties.getAppid(), key, new Date(new Date().getTime() + 5 * 60 * 10000));
            System.out.println("地址:  "+url.getPath());
        } catch (CosServiceException var15) {
            var15.printStackTrace();
        } catch (CosClientException var16) {
            var16.printStackTrace();
        } catch (InterruptedException var17) {
            var17.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        transferManager.shutdownNow();
        cosclient.shutdown();
    }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档