详情页标题前

阿里云对象存储OSSAndroid追加上传-云淘科技

详情页1

追加上传是指通过AppendObject方法在已上传的追加类型文件(Appendable Object)末尾直接追加内容。

说明 通过AppendObject操作上传的Object类型为Appendable Object,而通过PutObject操作上传的Object类型为Normal Object。当使用Append方式上传Object时,请注意对追加位置(Position)参数进行正确的设置。

  • 当创建一个Appendable Object时,请设置追加位置为0。
  • 当对Appendable Object进行内容追加时,请设置追加位置为Object当前长度。

    您可以通过追加上传后的返回内容或者通过HeadObject操作获取Object长度。

示例代码

以下代码用于追加上传文件。

// 依次填写Bucket名称(例如examplebucket)、Object完整路径(例如exampledir/exampleobject.txt)和本地文件完整路径(例如/storage/emulated/0/oss/examplefile.txt)。
// Object完整路径中不能包含Bucket名称。
AppendObjectRequest append = new AppendObjectRequest("examplebucket", "exampledir/exampleobject.txt", "/storage/emulated/0/oss/examplefile.txt");

ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("text/plain");
append.setMetadata(metadata);

// 设置追加位置。
append.setPosition(0);

// 设置回调。
append.setProgressCallback(new OSSProgressCallback() {
    @Override
    public void onProgress(AppendObjectRequest request, long currentSize, long totalSize) {
        Log.d("AppendObject", "currentSize: " + currentSize + " totalSize: " + totalSize);
    }
});
// 异步追加上传。
OSSAsyncTask task = oss.asyncAppendObject(append, new OSSCompletedCallback() {
    @Override
    public void onSuccess(AppendObjectRequest request, AppendObjectResult result) {
        Log.d("AppendObject", "AppendSuccess");
        Log.d("NextPosition", "" + result.getNextPosition());
    }

    @Override
    public void onFailure(AppendObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // 异常处理。
    }
});

对于Android10及之后版本的分区存储,您可以使用文件的Uri上传文件到OSS。

// 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。
// Object完整路径中不能包含Bucket名称。
AppendObjectRequest append = new AppendObjectRequest("examplebucket", "exampledir/exampleobject.txt", fileUri);

ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("text/plain");
append.setMetadata(metadata);

// 设置追加位置。
append.setPosition(0);

// 设置回调。
append.setProgressCallback(new OSSProgressCallback() {
    @Override
    public void onProgress(AppendObjectRequest request, long currentSize, long totalSize) {
        Log.d("AppendObject", "currentSize: " + currentSize + " totalSize: " + totalSize);
    }
});
// 异步追加上传。
OSSAsyncTask task = oss.asyncAppendObject(append, new OSSCompletedCallback() {
    @Override
    public void onSuccess(AppendObjectRequest request, AppendObjectResult result) {
        Log.d("AppendObject", "AppendSuccess");
        Log.d("NextPosition", "" + result.getNextPosition());
    }

    @Override
    public void onFailure(AppendObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // 异常处理。
    }
});

相关文档

  • 关于追加上传的完整示例代码,请参见GitHub示例。
  • 关于追加上传的API接口说明,请参见AppendObject。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158389.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云RDS数据库RDS SQL Server空间不足问题-云淘科技

    RDS SQL Server实例的空间使用率是日常需要重点关注的监控项之一,实例的存储空间不足,会导致严重后果,例如数据库无法写入、数据库无法备份、存储空间扩容任务耗时过长等。本文介绍如何查看空间使用情况以及排查空间问题。 查看空间使用情况 您可以在实例的基本信息页面查看存储空间使用情况,但是这里只展示当前的空间使用总量,没有展示各类数据分别占用的磁盘空间信…

    阿里云数据库 2023年12月9日
  • 阿里云对象存储OSSGo简单上传-云淘科技

    简单上传是指通过PutObject方法上传单个文件(Object)。简单上传包括流式上传和文件上传,流式上传使用文件流、网络流等作为OSS文件的数据源,文件上传使用本地文件作为OSS文件的数据源。本文介绍如何使用流式上传和文件上传方式上传文件。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSS教程示例:使用自定义域名设置静态网站托管-云淘科技

    您可以通过存储空间(Bucket)托管静态网站,并让访问者通过Bucket绑定的自定义域名(例如example.com)访问您的网站。无论您是想在OSS上托管已有静态网站还是从零开始建站,都可以从此教程中获得帮助。 步骤1:注册域名 搭建静态网站前,您需要为网站准备一个域名。建议您使用阿里云域名服务快速注册一个属于您的域名。详细步骤,请参见注册通用域名。 本…

    阿里云对象存储 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSSsync(同步OSS文件到本地)-云淘科技

    sync命令用于将OSS中的文件同步到本地。 注意事项 Binary名称 本文各命令行示例均基于Linux 64位系统,其他系统请将命令开头的./ossutil64替换成对应的Binary名称。详情请参见命令行工具ossutil快速入门。 文件数量 通过sync命令执行同步任务时,如果没有携带–delete选项,则单次同步任务同步的文件个数无限制…

    阿里云对象存储 2023年12月10日
  • 阿里云日志服务SLS从OSS获取数据出错-云淘科技

    如果加工规则中涉及OSS资源的加载,则有可能会产生资源的加载或刷新错误。本文档主要介绍从OSS获取数据出错的原因以及排查处理方法。 在成功读取源Logstore数据后,加工引擎开始对源Logstore的日志事件进行加工。如果加工规则中涉及OSS、RDS、Logstore等外联资源的加载,则也有可能会产生资源的加载或刷新错误。 错误影响 请参见错误影响。 错误…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。