2012-12-07 1 views
2

나는 약간의 깊이가있다. S3에 백업을 저장하고 S3 버킷의 특정 "폴더"내에서 가장 최근에 수정 된 파일을 다운로드 할 때 스크립트를 다운로드하려고합니다. Boto - S3에서 가장 최근에 붙잡음

나는 여기까지 가지고 :
import boto 
s3conn = boto.connect_s3() 
bucket = s3conn.lookup('my_bucket_name') 
for key in bucket: 
    print k.name, k.last_modified 

key.getfile() 

지금까지이이 이름을 얻을 수 있도록 설계 마지막 버킷에있는 각 파일의 수정됩니다. 이것은 내가 가장 최근에 얻은 다음 다운로드해야하기 때문에 내가 정말로 붙어있는 곳입니다. 그것이 내가 붙어있는 곳입니다.

누구든지 도움의 손길을 제공 할 수 있습니까?

답변

1

키 목록을 last_modifed로 정렬해야합니다. 그러면 목록의 마지막 항목이 원하는 파일이됩니다. 이런 식으로 뭔가 : 한 번 개체 또는 날짜 시간에 타임 스탬프 문자열을 변환 할 필요가 없습니다

key_list.sort(key=lambda x: x.last_modified) 
+2

:

key_list = bucket.list() key_list.sort(cmp = lambda x, y: cmp(x.last_modified, y.last_modified)) key_list[-1].get_file(destination_fp) 

다음은 시도 할 수 정렬하는 또 다른 방법이다. 그들은 ISO8601 날짜 문자열이며 문자열로 잘 정렬됩니다. – garnaat

+0

변환하지 않으면 어떻게할까요? 그것일까요? https://gist.github.com/4242333 – Jimmy

+0

아니요, last_modified는 목록에있는 각 키의 속성입니다. 불필요한 converstion을 제거하기 위해 이미 내 대답을 편집했습니다. – khagler