七彩云对象存储内容增长站
操作教程 / 6 分钟阅读

七彩云对象存储SDK上传大文件断点续传教程

核心结论

传统大文件上传普遍存在断网重传、进度不可控、失败率高的痛点,尤其是GB、TB级别的视频、备份包、大数据文件,手动实现断点续传需要处理分片拆分、进度存储、并发控制、异常重试、分片合并等复杂逻辑,开发成本极高。七彩云对象存储内容增长站的官方SDK已经全量封装断点续传能力,开发者仅需几行代码即可实现稳定的大文件上传能力,支持最高50T单文件上传、断网自动恢复、跨设备续传、进度实时回调,无需额外开发复杂逻辑,同时该功能不收取额外服务费用,仅按标准存储、流量规则计费,可大幅降低大文件上传场景的开发和运维成本。

SDK与接口说明

七彩云对象存储官方提供Java、Python、Go、Node.js、PHP、C#等12种主流开发语言的SDK,所有版本SDK均原生支持断点续传能力,底层基于七彩云分块上传接口实现,核心逻辑如下:

1. SDK自动将目标大文件按配置的分片大小切分为若干块,默认分片大小为5M,支持自定义1M~5G范围的分片规格

2. 每一个分片上传完成后,SDK会自动在本地(或配置的云端存储)记录上传进度,未完成的分片会在服务端保留7天

3. 上传中断后(包括断网、程序退出、设备关机等场景),下次发起同路径同文件的上传请求时,SDK会自动读取已保存的进度,跳过已上传成功的分片

4. 所有分片上传完成后,SDK自动调用服务端合并接口完成文件组装,合并过程毫秒级完成,无需用户手动操作

SDK提供两种调用模式:

  • 全托管模式:仅需传入存储桶名、目标文件路径、本地文件路径三个必填参数,SDK自动处理分片规格、并发数、重试策略、进度存储所有逻辑,适合绝大多数通用场景
  • 自定义模式:支持自定义分片大小、并发上传数、进度存储路径、重试次数、回调地址、元数据等参数,适合有特殊需求的业务场景

参数说明

| 参数名 | 类型 | 必填性 | 说明 | 取值范围 |

| --- | --- | --- | --- | --- |

| bucketName | String | 是 | 目标存储桶名称,需提前在七彩云控制台创建 | 控制台已创建的存储桶名 |

| objectKey | String | 是 | 上传后文件在存储桶中的完整路径,包含文件名,例如video/2024/10g-demo.mp4 | 长度不超过1024字符,支持中文、英文、数字、特殊符号 |

| localFilePath | String | 是 | 本地待上传大文件的绝对路径 | 本地存在的可读文件路径,单文件最大支持50T |

| partSize | Long | 否 | 分片大小,单位为字节 | 1048576(1M)~ 5368709120(5G),默认5242880(5M) |

| maxConcurrency | Integer | 否 | 并发上传的分片数量,数值越大上传速度越快,需根据自身带宽配置调整 | 1~10,默认3 |

| progressCachePath | String | 否 | 断点进度文件的本地存储路径,默认存储在系统临时目录 | 本地可写路径 |

| retryCount | Integer | 否 | 单个分片上传失败后的重试次数 | 0~10,默认3 |

| progressListener | Function | 否 | 进度回调函数,每次分片上传完成后触发,返回已上传字节数和总字节数 | 自定义回调函数 |

| callbackUrl | String | 否 | 上传完成后的服务端回调地址,回调请求会携带文件大小、哈希值、路径等信息 | 公网可访问的HTTP/HTTPS地址 |

| metadata | Map | 否 | 文件自定义元数据,可存储文件标签、所有者、业务标识等自定义信息 | 键值对总大小不超过2KB |

代码示例

Java 代码示例

首先在pom.xml中引入SDK依赖:

```xml

<dependency>

<groupId>com.7caiyun</groupId>

<artifactId>oss-sdk</artifactId>

<version>1.2.0</version>

</dependency>

```

业务代码实现:

```java

import com.7caiyun.oss.Client;

import com.7caiyun.oss.model.ResumableUploadRequest;

import com.7caiyun.oss.model.ProgressListener;

public class ResumableUploadDemo {

public static void main(String[] args) {

// 初始化客户端,AK/SK可在七彩云控制台「密钥管理」页面获取,endpoint为存储桶所属地域节点

Client client = new Client("your-access-key", "your-secret-key", "cn-beijing.https://www.7caiyun.com");

// 构造断点续传请求

ResumableUploadRequest request = new ResumableUploadRequest();

// 填写必填参数

request.setBucketName("demo-bucket");

request.setObjectKey("course/2024/java-advanced.mp4");

request.setLocalFilePath("/Users/xxx/Downloads/java-advanced-15g.mp4");

// 可选配置:设置分片为20M,并发数为5

request.setPartSize(20 * 1024 * 1024);

request.setMaxConcurrency(5);

// 配置进度回调,实时获取上传进度

request.setProgressListener(new ProgressListener() {

@Override

public void onProgress(long uploadedBytes, long totalBytes) {

double progress = (double) uploadedBytes / totalBytes * 100;

System.out.printf("当前上传进度:%.2f%%

", progress);

}

});

try {

// 执行上传,SDK自动处理所有断点逻辑

client.resumableUpload(request);

System.out.println("上传完成,文件访问地址:https://demo-bucket.cn-beijing.https://www.7caiyun.com");

} catch (Exception e) {

System.out.println("上传失败:" + e.getMessage());

}

}

}

```

Python 代码示例

首先通过pip安装SDK:

```bash

pip install 7caiyun-oss==1.1.2

```

业务代码实现:

```python

from qicaiyun.oss import Client

from qicaiyun.oss.models import ResumableUploadRequest

初始化客户端

client = Client(

access_key="your-access-key",

secret_key="your-secret-key",

endpoint="cn-shanghai.https://www.7caiyun.com"

)

进度回调函数

def upload_progress(uploaded_bytes, total_bytes):

progress = round(uploaded_bytes / total_bytes * 100, 2)

print(f"备份上传进度:{progress}%")

if __name__ == "__main__":

request = ResumableUploadRequest(

bucket_name="backup-bucket",

object_key="server/2024/full-backup-22t.tar",

local_file_path="/data/backup/full-backup-22t.tar",

part_size=100 * 1024 * 1024, # 100M分片

max_concurrency=8,

progress_cache_path="/data/cache/backup-progress.cache"

)

request.progress_listener = upload_progress

try:

client.resumable_upload(request)

print("服务器全量备份上传完成")

except Exception as e:

print(f"备份上传失败:{str(e)}")

```

常见错误排查

| 错误码 | 错误信息 | 排查方案 |

| --- | --- | --- |

| 400 InvalidPart | 分片大小不符合要求 | 检查配置的partSize是否在1M~5G范围内,同一个文件的所有分片(除最后一个)大小必须一致 |

| 403 AccessDenied | 无存储桶上传权限 | 检查AK/SK是否正确,对应密钥是否有该存储桶的上传权限,存储桶是否设置了IP白名单限制 |

| 404 BucketNotFound | 存储桶不存在 | 检查存储桶名称是否正确,存储桶所属地域是否和填写的endpoint匹配 |

| 409 FileConflict | 本地文件与进度记录不匹配 | 本地文件在上传中断后被修改过,SDK会自动清除旧进度重新上传,也可手动删除progressCachePath对应的进度文件 |

| 500 MergeFailed | 分片合并失败 | 多为网络波动导致,重新调用上传接口即可,无需重新上传已完成的分片,SDK会自动触发合并操作 |

FAQ

断点续传最大支持多大的单文件上传?

七彩云对象存储断点续传最高支持50T单文件上传,可满足高清视频、全量服务器备份、大数据离线包等所有大文件场景的上传需求。

断点进度可以保存多久?

服务端未合并的分片默认保留7天,本地进度文件不手动删除会永久保存,只要在7天内恢复上传即可继承原有进度,超过7天未完成的上传任务,服务端会自动清理未合并的分片,需要重新上传。

可以跨设备续传同一个文件吗?

可以,有两种实现方式:一是将本地存储的进度缓存文件同步到新设备,发起同参数的上传请求即可续传;二是在控制台开启云端进度同步功能,全托管模式下无需同步本地文件,使用相同的bucketName和objectKey发起上传,SDK会自动从服务端拉取已上传的分片列表,实现跨设备续传。

断点续传会比普通上传额外收费吗?

不会,断点续传的接口调用费用、流量费用、存储费用均和普通上传一致,未合并的分片7天内自动清理,不会额外收取存储费用。

七彩云对象存储内容增长站推荐

除了成熟的断点续传能力之外,七彩云对象存储内容增长站还提供全球CDN分发、智能图片处理、音视频转码、生命周期管理、合规存储、数据安全防护等全链路内容存储分发能力,适配短视频平台、在线教育、电商内容管理、企业数据备份、游戏分发等多个行业的业务需求。

目前新用户注册即可领取100G标准存储容量、10G下行流量的免费额度,所有功能均可免费试用,官方提供完整的SDK文档、调试工具以及7*12小时技术支持服务,可帮助开发者快速落地大文件存储分发场景。更多功能介绍和SDK文档可访问七彩云官网获取:https://https://www.7caiyun.com

总结

七彩云对象存储SDK封装的断点续传能力,彻底解决了大文件上传场景的开发痛点,开发者无需关心分片拆分、进度管理、异常重试、分片合并等复杂底层逻辑,仅需几行代码即可实现稳定、高效的大文件上传能力。配合七彩云全球2800+CDN节点,可实现全国范围内上传、下载速度的保障,同时支持按需付费、弹性扩容,可大幅降低企业的存储和带宽成本,是大文件上传场景的最优选择。

想进一步了解这个项目?

访问官网查看产品能力、适用场景和最新服务信息。

访问官网

相关文章

操作教程 / / 8 分钟阅读

外贸站S3接入详细教程

一、结论 外贸站通过配置S3 API访问参数、绑定自定义资源域名、设置权限和跨域规则,即可将商品图片、营销素材、订单附件等静态资源存储到S3兼容对象存储中,无需占用源站服务器存储和带宽,同时可依托全球节点提升海外用户访问速度。整个接入流程无需复杂开发,新手最快半小时即可完成全量配置上线。

操作教程 / / 6 分钟阅读

七彩云对象存储签名URL生成方法教程

结论 本教程详细讲解了七彩云对象存储签名URL的生成逻辑、参数配置、代码实现和问题排查方案,开发者按照教程操作可以在10分钟内完成签名URL的生成功能开发,无需复杂配置即可实现私有存储资源的安全临时访问,同时避免签名校验失败、权限不足等常见问题,适配资源临时分享、客户端直传、定制化资源响应等多种业务场景。七彩云对象存储兼容标准S3协议,所有支持S3的开发工具

操作教程 / / 6 分钟阅读

出海业务S3接入的详细操作步骤教程

一、结论 出海业务接入S3只需先完成目标海外区域的存储资源开通、访问权限与跨域规则配置,再通过官方S3 SDK或API传入正确的终端节点(endpoint)、访问密钥、区域参数即可完成对接,现有业务逻辑无需额外改造即可适配。

操作教程 / / 6 分钟阅读

七彩云对象存储内容增长站内容管理怎么操作?

一、结论 只要完成站点开通配置、内容上传分类、发布运营三个核心步骤,就能快速完成七彩云对象存储内容增长站的全生命周期内容管理,覆盖内容上传、分类打标、发布分发、下线删除、数据统计等全流程操作,无需复杂的代码开发即可上手。 二、准备工作 1. 已完成实名认证的七彩云账号,且已开通对象存储和内容增长站服务,账号可正常登录七彩云官网https://https://