开发者社区 > 云存储 > 对象存储OSS > 正文

如何下载OSS中指定日期内产生的文件

如何使用ossutil下载OSS中指定日期内产生的文件到本地?

展开
收起
海拉鲁克洛格果实批发 2023-04-24 10:23:31 903 0
6 条回答
写回答
取消 提交回答
  • 可以通过以下命令在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/ 替换为您本地要保存的目录。

    2023-04-24 17:45:29
    赞同 1 展开评论 打赏
  • 月移花影,暗香浮动

    要使用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服务器的地址和端口号。

    2023-04-24 17:06:19
    赞同 展开评论 打赏
  • 从事java行业8年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    OSS获取指定时间内的文件的话可以通过存储空间清单获取指定属性的文件清单,比如时间段。使用对象存储OSS的清单功能获取存储空间(Bucket)中指定文件(Object)的数量、大小、存储类型、加密状态等信息,参考文档:存储空间清单,使用ossutil配置Bucket清单的具体操作, 请参见inventory(清单)

    2023-04-24 17:00:58
    赞同 展开评论 打赏
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    创建一个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

    2023-04-24 14:25:23
    赞同 1 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    可以使用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中

    2023-04-24 11:04:00
    赞同 展开评论 打赏
  • 使用ossutil的话,可以先用ls列出时间范围内的文件,然后在下载。ossutil文档可以参考:https://help.aliyun.com/document_detail/50452.html

    大概步骤:

    • 首先使用 ossutil 命令行工具获取指定日期范围内的文件列表,可以使用 ls 命令,并结合 grep 命令和正则表达式来筛选指定日期范围内的文件。例如,下面的命令可以列出 2022 年 1 月 1 日到 2022 年 1 月 31 日之间的文件:
    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 命令下载指定文件列表中的文件,可以使用以下命令:
    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 文件中记录的日志,以了解下载进度和状态。

    2023-04-24 10:57:19
    赞同 展开评论 打赏
滑动查看更多

相关产品

  • 对象存储
  • 相关电子书

    更多
    OSS运维进阶实战手册 立即下载
    《OSS运维基础实战手册》 立即下载
    OSS运维基础实战手册 立即下载