Как получить все последние файлы на основе префикса на ведре S3? - PullRequest
0 голосов
/ 11 октября 2019

Мне нужно получить все файлы, превышающие временную метку, с условием префикса. Например, все файлы, которые содержат myfile*.zip > 2019-11-11 13:00:00,000, поэтому, если я получил следующее:

myfile1.zip - 2019-11-10 13:00:00,000
myfile2.zip - 2019-11-11 10:00:00,000
myfile3.zip - 2019-11-11 13:00:00,000
myfile4.zip - 2019-11-11 17:00:00,000

Я хочу получить следующий результат:

myfile3.zip - 2019-11-11 13:00:00,000
myfile4.zip - 2019-11-11 17:00:00,000

Мне нужно сделать это с Pythonboto3, или bash, или с Airflow S3KeySensor.

1 Ответ

0 голосов
/ 11 октября 2019

Решение Bash:

Вы можете использовать комбинацию touch -t и find -newer. touch создаст файл с определенной датой изменения, а find -newer выведет список только тех файлов, которые новее, чем созданный файл. Например:

# for 2019-11-11 13:00:00,000
# Edit: This is currently in the future, so no results for you!
touch -t 201911111300 mytempfile.temp 
find . -name 'myfile*.zip' -newer mytempfile.temp
rm mytempfile.temp

С touch --help:

-t STAMP               use [[CC]YY]MMDDhhmm[.ss] instead of current time
    --time=WORD        change the specified time:
                         WORD is access, atime, or use: equivalent to -a
                         WORD is modify or mtime: equivalent to -m
...