Object上传下载及管理
BOS支持自定义文件属性吗?
BOS支持系统Meta和自定义Meta。系统Meta是由BOS维护的Meta信息如Content-Length、Last-Modified。自定义Meta是以”x-bce-meta-“开头的<key,value>对。您可以通过自定义meta来保存您希望存储的额外文件属性如x-bce-meta-owner: xiaoming。
如何更新Meta信息,例如Content-type?
您可以通过CopyObject来实现Meta信息更新。只需要把目标文件设为跟源文件一致,并加入您需要更新/添加的Meta信息即可。此外,控制台即将推出设置Meta功能,未来您可以在控制台console上完成Meta信息(如Content-Type)的更新。
如何进行文件分享?
BOS支持文件分享,即获取Object文件的链接然后进行分享。对于私有bucket,您可以在控制台或者通过SDK生成一个有时效性的临时分享链接。通过控制台生成分享链接见下载Object,通过SDK生成临时分享链接可参考Java sdk的获取Object的URL。
PutObject、PostObject、AppendObject和MultipartUpload这几种上传接口的区别是什么?
这几种上传接口都可以实现文件上传。其主要区别如下:
- PutObject通常用于小文件上传。
- PostObject主要用于浏览器环境下的上传。
- AppendObject主要用于增量上传场景,如监控录像实时上传、日志传输等。Appendable的文件随时可以查看。
- MultipartUpload主要用于大文件上传。MultipartUpload通过把大文件分块然后逐块上传,大幅度提高上传成功率和上传速度。需要注意的是,MultipartUpload在上传完成(commit)前是无法通过ListObjects查看该文件的。
CopyObject是否支持跨region拷贝?
CopyObject支持跨region拷贝Object。当进行跨区域Object复制时,复制产生的流量会收取跨区域流量费,跨区域收费标准参见产品定价。
如何跨bucket拷贝数据?
BOS支持CopyObject的API接口实现数据拷贝。为了便于您的使用,BOS console、CLI、SDK均封装了该接口。 当您有大量文件需要进行跨bucket拷贝时,您可以通过SDK来实现:首先通过ListObject获取需要拷贝的文件列表,然后用CopyObject执行拷贝。 需要注意的是,执行CopyObject需要您拥有源文件的读权限和目标文件的写入权限。如果目标bucket是另一个用户所有,您可以让bucket所有者为其bucket设置ACL来允许您的写入操作。更多细节请见Bucket权限控制。
如何进行大文件上传?
BOS的文件上传方案由数据传输服务(Data Import,俗称“寄盘”),命令行工具CLI,SDK和Console组成。
- 当文件非常多,通过网络上传变得不可行时,推荐通过Data Import服务进行上传。Data Import服务提供通过邮寄硬盘的方式快速完成数据导入。如果对此感兴趣,请通过提交工单咨询。
- 如果文件数量适中,或者网络上行带宽条件较好,您可以考虑通过CLI进行文件上传。CLI支持大文件断点续传。如何使用CLI进行上传请参考BCE CLI。CLI基于BOS Python SDK封装而成,如果您需要在其他语言环境下进行文件上传,也可以通过BOS SDK编写上传代码。
- 当文件数量较小时,您也可以直接通过管理控制台Console上传。
如何批量删除BOS中的文件?
BOS支持多种方式批量删除。
- 登录控制台并选中多个文件批量删除。
- BOS提供了批量删除的API接口DeleteMultipleObjects接口,可以实现通过一个HTTP请求删除同一个Bucket下的多个Object。
- 可以通过工具BOS CMD进行批量删除,详细操作指导请参考删除Object。
如何快速查看Bucket中是否存在某个文件?
可以通过Listobjects接口进行循环判断。
BOS是否支持断点续传?
BOS使用控制台上传文件时不支持断线续传,但BOS提供的API接口、SDK及工具都支持断点续传。
如何将标准BOS修改为低频BOS?
生命周期管理可以转换存储类型从标准存储到低频存储,BOS生命周期规则设置后会在一天内生效。规则生效后,BOS会对符合条件的Object进行相应的处理,但处理需要一定的时间(一般情况下为几小时),所以设置规则后不一定能马上看到效果。规则中计算的时间(即Object的“年龄”)以Object的创建时间为准,而不是生命周期规则的创建/修改时间。BOS只保存文件的最后修改时间,即last-modified时间;如果不更新meta或者覆盖文件,那么last-modified就是创建时间。所以生命周期中的“创建时间”其实是last-modified时间。详细操作方法请参考管理生命周期。
BOS如何上传下载文件或者文件夹?
BOS支持以下多种方式上传文件:
控制台最大支持上传5G的数据,批量上传下载或超过5G的大文件建议使用SDK或周边工具。
如何设置文件的Header属性?
可以通过Copyobject接口进行设置。其中CopyObject接口只能修改userMeta,需要您在上传时设置好content-type。
是否支持浏览器上传文件?
可以使用bce bos uploader工具实现,详细操作请参考web端直传实践。
BOS误删除的数据是否可以找回?
用户可以通过配置Bucket的回收站功能,保证删除后的数据在回收站内继续保留,用于后续对删除数据的找回。默认情况下,Bucket的回收站功能为关闭状态,详细描述请参见回收站。
如何设置才能直接浏览Object而不是下载?
如果想要设置访问BOS的资源是查看而不是直接下载,可以通过设置Object的Meta信息来指定,具体介绍和操作请参考设置Object的meta。
BOS文件上传后能否自动进行MD5校验?
如果是想要校验上传文件的完整性,API中可以使用content_md5参数进行文件数据校验。设置后BOS会启用文件内容MD5校验,把提供的MD5与文件的MD5比较,不一致会提示错误。详细描述请参考PutObject接口。使用分块上传时,建议在分块上传中使用每个分块BOS返回的Content-MD5值分别验证已上传分块数据的正确性。当所有分块数据合成一个Object后,不再含MD5值。
BOS提供的SDK均支持MD5校验,以JAVA为例,详细描述请参考文件管理。
BOS如何获取缩略图?
用户可以使用BOS提供的视频截帧功能生成略缩图。也可以使用VOD获取封面,具体接口参考查询指定媒资。
如何在ListObjects接口同时获取Object的User和Meta信息?
如果想要批量获取Object的User和Meta信息,可以使用GetObjectMeta接口。
BOS的Object获取地址能否用自定义域名?
可以使用自定义域名绑定Bucket后访问,详细操作请参考绑定Bucket域名。
怎样增量上传文件到BOS?
对象存储BOS中,可以通过以下方法迁移与备份增量数据:
1. BOS周边工具,如:Bcecmd中通过sync进行迁移与备份数据,Bos桌面提供了本地目录数据迁移与备份功能;
2. 镜像回源,可以通过Bucket域名访问对应文件资源,如果文件不存在会进行回源获取,并存储在Bucket中。
BOS图片处理中定义样式是否支持点号?
不支持,请参考图片样式名称限制说明:规则与限制
请问下BOS,上传视频后,能获取到视频的预览图吗?
对象存储BOS无法针对上传的视频文件,进行自动取帧生成缩略图,可以使用音视频转码MCT,其可以创建缩略图任务,进行生成缩略图。
BOS视频链接有没有类似于图片处理可以加参数获取一些数据?
对象存储BOS服务,目前针对音视频资源可以进行数据处理,具体请参考:音视频处理。
我上传文件到BOS里面,会产生哪些费用?
BOS 服务的计费项包括存储费用、流量费用、请求费用、数据处理费用四部分。根据您的使用情况,每一项会产生不同的费用。
询问下mp4文件是否能预览,文件信息中有预览功能,想看mp4的文件截图预览,怎么实现?
可以结合视频处理,实现对视频文件截取首帧或者指定帧数截取生成对应的封面图片,进行封面预览,具体参考音视频处理。
BOS存储图片/视频等资源,是否有接口支持查询视频的meta信息如视频尺寸,视频相关信息?
对象存储BOS并不支持查询存储视频的尺寸等信息,需要您通过第三方工具进行校验,如:ffprobe 请求BOS视频地址。
是否可以获取bucket中视频文件时长?
目前bos并没有接口支持获取对应视频文件时长,建议可以通过第三方工具进行获取,如:ffprobe等。
借助baidubce-sdk或bce-bos-uploader如何上传文件到buket中的指定子目录??
可以通过objectkey进行指定对应资源子目录,如:object是“temp/abc.jpg”,那么其就是存储在temp目录下abc.jpg文件。
标准存储里面东西太多,怎么删除?
您可以通过以下方式进行批量删除资源:
BOS带宽不够,量级大的时候会有加载图片慢怎么办?
目前BOS 对单 Bucket 设置的带宽阈值为 10 Gbit/s,正常大量请求是可以满足的,通常影响加载慢是由于客户端网络带宽导致,可以更换网络环境进行测试。同时,如果您需要优化bos资源加载,也可以使用cdn,把资源缓存到cdn节点,这样相对直接请求bos资源会有所改善。