如何迁移 OSS 的文件_2|学习笔记

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 快速学习如何迁移 OSS 的文件_2

开发者学堂课程【管理功能玩转对象存储 OSS 使用入门如何迁移 OSS 的文件_2】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/378/detail/4745


如何迁移 OSS 的文件_2


内容介绍

一、通过 API/SDK上传 文件

、MultipartUpload 注意事项


一、通过 API/SDK 上传文件

1、通过 MultipartUpload 对象 oss上传大文件,回到 eclipse 工作环境,这里采用的是 SDK 中包含的 oss 的 Multipartsample.Java 这个文件中的示例代码进行操作,除了 putobject 中的基本设置外,MultipartUpload 还需要一些额外的设置,例如设置的 part_size 主要是来指定后续 upload 时候的每个分块的大小,这里只还指定上传 part 的并发线程数。

2、查看主函数,在主函数中先用一个 client 的对象,该 client 对象可以通过clientconfiguration 进行设置,这里采用的是默认设置当有一个 client 对象后,去生成一个 file 对象。该 file 对象指代的是的大文件,在这里采用了 upload big file 来统一的编写 MultipartUpload 的代码,点击进入被 upload big file 查看其详细实现细节。

3、首先在该过程中主要做的第一个步骤就是去计算每个分块的个数,会根据前述所定义的每个 part 的大小来计算总共的分块个数,如果计算得到的 part count 小于等于1则说明本次计算有误,需要重新的进行任务。在计算完成之后,将通过initmultipartupload 接口来对分块上传进行初始化操作点击进入该函数,可以看到该函数的参数是通过 client bucketname objectname 三个参数来实现的主要是为了初始化一个分块上传的事件,初始化完成后将得到一个 upload ID 该 upload ID 将全局指定标识本次分块上传的事件。在初始化分块上传的任务的时候,是调用 client 的 initiaremultipartupload 接口来对该方法进行分块上传进行初始化,用户可以指定 initiaremultipartupload 指定其 request 相关参数,在完成后,就将可以得到对应的标识,该 MultipartUpload 的 upload ID

4、接下来需要做的第二步就是需要创建一个线程时,这里采用的是上述的两并发的线程时得到该线程时主要应用的是 uploadpartthread 该线程点击进入该线程查看,可以查看该线程主要是来通过调用 client  uploadpart 功能实现上传分块的一个接口,它的实参主要是 uploadpartRequestuploadpartRequest 可以指定本次 upload 分块它所属的一些特性一些属性包括主要包括 bucketnameobjectnameupload ID它对应的 streamli它的 part 大小以及它对应的 partnumber,会根据指定的bucket的名称 upload ID,并根据 partnumber 来区分对应的分块。在上传完成后,oss 会返回其对应的 Python 数据的 MD 值放在attack 中,可以通过类似的容器来获取该 attack 值。再完成第二步分块上传后,可以通过去判断类似的容器的一个 size 大小是否与预期的 part count 的大小是否一致如果一致说明的所有的分块都已经正常上传,而如果不一致则说明有分块未成功上传。

5、在确认完所有分块正常上传后,可以通过 complatemultipartupload 接口来对整个分块上传任务进行完成的操作。在完成一个 multipartupload 的请求的时候,需要用户提供有效的各分块的列表,其中包括各分块的号码,也就是 part number和它对应的 lient,oss 在接收到用户提供的 part 列表以后,会逐个验证各个分块的有效性,当所有的分块的有效性都验证通过后,oss 将这些数据的 part 组成一个完整的 object。而这里所调用的接口就是通过 client 的 complatemultipartupload接口来实现的。在完成上述的操作后,整个 multipartupload 就算是实现完成。

 

二、MultipartUpload 注意事项

1、上传分块可以通过 Content-MD5 验证分块的有效性。

2、除最后一块以外所有块的大小都大100KB。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
3月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之上传素材文件不在同一地域的OSS,怎么上传多张图片
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
47 1
|
3月前
|
存储 运维 Serverless
函数计算产品使用问题之OSS触发器是否可以只设置文件前缀
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在使用MaxCompute进行数据集成同步到OSS时,出现表名和OSS文件名不一致且多了后缀,该如何处理
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
运维 Serverless 对象存储
函数计算产品使用问题之如何配合OSS实现接口收到的图片或文件直接存入OSS
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之使用OSS读取CSV文件到ODPS时遇到报错,一般是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之在调用接口传入的图片URL参数,文件在本地或者非上海地域OSS链接,该怎么办
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
4月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
22天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
3月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决

热门文章

最新文章