可以通过以下命令在OSS中查找指定日期范围内的文件,并下载到本地:
# ossutil查找指定日期范围内的文件
ossutil ls oss://your-bucket/path/ -a --time-range "yyyy-mm-dd-THH:MM:ssZ" --time-range-end "yyyy-mm-dd-THH:MM:ssZ" -u
# 下载符合条件的文件到本地
ossutil cp -r oss://your-bucket/path/to/download /path/to/local/directory/
其中,oss://your-bucket/path/
是要查找的 OSS 存储桶路径,--time-range
和 --time-range-end
是文件最后修改时间的起止范围,-u
参数表示读取 OSS 中所有的 Object 元数据。
例如,如果要查找 2022 年 2 月 1 日至 2022 年 2 月 28 日之间的文件,可以执行以下命令:
ossutil ls oss://your-bucket/path/ -a --time-range "2022-02-01T00:00:00Z" --time-range-end "2022-02-28T23:59:59Z" -u
# 下载符合条件的文件到本地
ossutil cp -r oss://your-bucket/path/to/download /path/to/local/directory/
请注意,-r
参数表示下载整个目录,如果只需下载某个文件,则不需要包含 -r
参数。同时,需要将 oss://your-bucket/path/to/download
替换为您要下载的路径,/path/to/local/directory/
替换为您本地要保存的目录。
要使用OSSUtil下载指定日期内产生的文件到本地,您需要执行以下步骤:
使用oss2命令获取OSS文件的元信息,例如文件大小、ETag等。
oss2 get-bucket-metadata --bucket <your-oss-bucket-name> --key <your-oss-object-key>
使用OSSUtil的日期范围过滤器,获取指定日期内的文件列表。例如,要获取在2022年1月1日至2022年2月28日之间产生的文件,您可以使用以下命令:
ossutil --endpoint=<your-oss-endpoint> --access-key=<your-access-key> --secret-key=<your-secret-key> list-object --bucket=<your-oss-bucket-name> --key=<your-oss-object-key> --range="startDate=2022-01-01T00:00:00Z endDate=2022-02-28T23:59:59Z"
这将返回在指定日期范围内的所有文件的列表。
使用OSSUtil的下载命令将文件下载到本地。例如,要将名为“myfile.txt”的文件下载到本地,您可以使用以下命令:
ossutil --endpoint=<your-oss-endpoint> --access-key=<your-access-key> --secret-key=<your-secret-key> download-object --bucket=<your-oss-bucket-name> --key=<your-oss-object-key> --local-file=<output-directory> --range="startDate=2022-01-01T00:00:00Z endDate=2022-02-28T23:59:59Z"
这将下载指定日期范围内的所有文件,并将它们保存到指定的输出目录中。
请注意,您还需要将“”设置为您使用的OSS服务器的地址和端口号。
OSS获取指定时间内的文件的话可以通过存储空间清单获取指定属性的文件清单,比如时间段。使用对象存储OSS的清单功能获取存储空间(Bucket)中指定文件(Object)的数量、大小、存储类型、加密状态等信息,参考文档:存储空间清单,使用ossutil配置Bucket清单的具体操作, 请参见inventory(清单)
创建一个RAM账户 打开RAM访问控制页面,用户,新建用户,然后给账号分配权限,获得accessKeyID和accessKeySecret。
把获得的accessKeyID和accessKeySecret值保存好。
安装和配置ossutil 1、在服务器上下载ossutil
wget http://gosspublic.alicdn.com/ossutil/1.6.10/ossutil64
2、修改文件权限
chmod 755 ossutil64
3、配置ossutil
4、复制OSS的endpoint地址
5、把endpoint、accessKeyID和accessKeySecret分别填写到配置信息里面。
使用ossutil上传下载文件 上传单个文件的命令如下:
./ossutil64 cp 要上传的文件名 oss://路径
下载单个文件的命令如下:
./ossutil64 cp oss://路径/文件名 /服务器路径
就这样就OK了,可以快速把大文件通过OSS在两台主机上面转移。
详细请参考官方文档:https://help.aliyun.com/document_detail/50452.html?spm=a2c4g.11174283.6.1275.24747da2SQFT45
可以使用ossutil提供的ls命令结合Linux系统的管道符来完成这个任务。
首先,使用以下命令查看在指定日期内生成的文件:
./ossutil ls oss://your-bucket --recursive --time-range "2022-01-01 00:00:00,2022-12-31 23:59:59" > files.txt
其中,--recursive参数是指递归地查找整个bucket中的文件,--time-range参数指定了日期范围,并将结果输出到名为files.txt的文本文件中。
接下来,我们可以使用管道符号将files.txt中的文件名传递给xargs命令,并使用cp命令将它们下载到本地:
cat files.txt | awk '{print $NF}' | xargs -I {} sh -c './ossutil cp {} /path/to/local/folder'
这个命令会读取files.txt文件并使用awk获取每一行的最后一个字段(即文件名),然后通过xargs传递给sh来执行cp命令,将文件下载到本地目录/path/to/local/folder中
使用ossutil的话,可以先用ls列出时间范围内的文件,然后在下载。ossutil文档可以参考:https://help.aliyun.com/document_detail/50452.html
大概步骤:
ossutil ls oss://your-bucket/path/ --recursive | grep "2022-01-[0-9]\{2\} " | awk '{print $NF}' > file_list.txt
这个命令使用 grep 命令和正则表达式筛选出符合日期范围的文件,然后使用 awk 命令提取出文件路径,并将结果保存到 file_list.txt 文件中。
ossutil cp -u -f -L download.log -j 10 -c oss://your-bucket/path/ /local/path/ -i file_list.txt
这个命令中:
-u 表示只下载修改时间(Last-Modified)和大小(Size)发生变化的文件;
-f 表示强制覆盖本地已有的同名文件;
-L download.log 表示将下载过程中的日志记录到 download.log 文件中;
-j 10 表示并发下载文件的数量,这里设置为 10;
-c 表示使用 HTTPS 协议进行传输;
oss://your-bucket/path/ 表示要下载的 OSS 对象路径;
/local/path/ 表示要保存到本地的路径;
-i file_list.txt 表示从 file_list.txt 文件中读取要下载的文件列表。
执行这个命令后,ossutil 会根据指定的文件列表,下载符合条件的文件到本地。下载过程中,你可以查看 download.log 文件中记录的日志,以了解下载进度和状态。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
对象存储 OSS 是一款安全、稳定、高性价比、高性能的云存储服务,可以帮助各行业的客户在互联网应用、大数据分析、机器学习、数据归档等各种使用场景存储任意数量的数据,以及进行任意位置的访问,同时通过丰富的数据处理能力更便捷地使用数据。