File: s3md5.py

package info (click to toggle)
mongodb 1%3A2.4.10-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 82,464 kB
  • sloc: cpp: 740,225; ansic: 152,098; sh: 13,820; python: 11,864; makefile: 1,012; perl: 922; pascal: 617; java: 452; lisp: 222; asm: 174
file content (48 lines) | stat: -rw-r--r-- 1,138 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

import os
import sys

sys.path.append( "." )
sys.path.append( ".." )
sys.path.append( "../../" )
sys.path.append( "../../../" )

import simples3
import settings
import subprocess

# check s3 for md5 hashes

def check_dir( bucket , prefix ):
    
    zips = {}
    md5s = {}
    for ( key , modify , etag , size ) in bucket.listdir( prefix=prefix ):
        if key.endswith( ".tgz" ) or key.endswith( ".zip" ) or key.endswith( ".tar.gz" ):
            zips[key] = etag.replace( '"' , '' )
        elif key.endswith( ".md5" ):
            md5s[key] = True
        elif key.find( "$folder$" ) > 0:
            pass
        else:
            print( "unknown file type: " + key )
            
    for x in zips:
        m = x + ".md5"
        if m in md5s:
            continue

        print( "need to do: " + x + " " + zips[x] + " to " + m )
        bucket.put( m , zips[x] , acl="public-read" )
        

def run():

    bucket = simples3.S3Bucket( settings.bucket , settings.id , settings.key )
    
    for x in [ "osx" , "linux" , "win32" , "sunos5" , "src" ]:
        check_dir( bucket , x )
    

if __name__ == "__main__":
    run()