阿里云oss的net断点续传demo

断点续传:(存在问题)

  class Program
    {
        static void Main(string[] args)
        {
            String bucketName = "自己的bucket名";
            String key = "阿里云的key";
            String accessId = "阿里云的id";
            String localPath = @"本地文件路径";

            // 初始化OSSClient
            OssClient client = new OssClient(accessId, key);

            // 开始Multipart Upload
            InitiateMultipartUploadRequest initiateMultipartUploadRequest =
                                                new InitiateMultipartUploadRequest(bucketName, key);           
            InitiateMultipartUploadResult initiateMultipartUploadResult =
                                                client.InitiateMultipartUpload(initiateMultipartUploadRequest);

            // 打印UploadId
            Console.WriteLine("UploadId: " + initiateMultipartUploadResult.UploadId);
            // 设置每块为 5M
            int partSize = 1024 * 1024 * 5;

            Stream partFile = File.OpenRead(localPath);

            // 计算分块数目
            int partCount = (int)(partFile.Length / partSize);
            if (partFile.Length % partSize != 0)
            {
                partCount++;
            }

            // 新建一个List保存每个分块上传后的ETag和PartNumber
            List<PartETag> partETags = new List<PartETag>();

            for (int i = 0; i < partCount; i++)
            {

                // 跳到每个分块的开头
                long skipBytes = partSize * i;

                // 计算每个分块的大小
                long size = partSize < partFile.Length - skipBytes ?
                        partSize : partFile.Length - skipBytes;

                // 创建UploadPartRequest,上传分块
                UploadPartRequest uploadPartRequest = new UploadPartRequest(bucketName, key, initiateMultipartUploadResult.UploadId);
                uploadPartRequest.InputStream = partFile;
                uploadPartRequest.PartSize = size;
                uploadPartRequest.PartNumber = i + 1;
                UploadPartResult uploadPartResult = client.UploadPart(uploadPartRequest);

                // 将返回的PartETag保存到List中。
                partETags.Add(uploadPartResult.PartETag);
            }
            partFile.Close();
            CompleteMultipartUploadRequest completeMultipartUploadRequest =
        new CompleteMultipartUploadRequest(bucketName, key, initiateMultipartUploadResult.UploadId);

            // 完成分块上传
            CompleteMultipartUploadResult completeMultipartUploadResult =
                    client.CompleteMultipartUpload(completeMultipartUploadRequest);

            // 打印Object的ETag
            Console.WriteLine(completeMultipartUploadResult.ETag);
            ListPartsRequest listPartsRequest = new ListPartsRequest(bucketName, key, initiateMultipartUploadResult.UploadId);
            Console.WriteLine(listPartsRequest.Key);
            Console.ReadKey();
        }
    }


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现Vue阿里云OSS断点续传,可以按照以下步骤进行操作: 1. 首先,安装ali-oss依赖库,可以使用npm命令进行安装:npm install ali-oss --save。 2. 创建一个RAM用户,分配相应的角色和权限策略,确保该用户拥有上传文件到OSS的权限。 3. 在Vue项目中引入OSS对象,并声明一个全局变量ossClient和tempCheckpoint。可以在项目的入口文件或者所需要使用的组件中引入OSS对象。例如,使用require语句引入OSS对象:const OSS = require('ali-oss')。 4. 初始化ossClient和tempCheckpoint变量,ossClient用于连接到阿里云OSS服务,tempCheckpoint用于记录已完成上传的分片及其对应的etag值。 5. 在文件上传时,根据需要将文件切分成多个分片,并使用ossClient.uploadPart方法进行分片上传。在每次分片上传完成后,更新tempCheckpoint数组。 6. 如果上传过程中中断了,可以通过tempCheckpoint数组来恢复上次上传的进度。重新初始化ossClient,并使用ossClient.uploadPart方法继续上传剩余的分片。 通过以上步骤,就可以实现Vue阿里云OSS断点续传功能。这样即使在上传大文件的过程中出现中断,也可以从上次中断的地方继续上传,提高文件上传的可靠性和效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [阿里云oss文件分片、断点续传上传](https://blog.csdn.net/m0_49106791/article/details/119766365)[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: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值