· 6 years ago · Jan 31, 2019, 05:15 PM
1#!/usr/bin/env python
2import fnmatch
3import os, sys
4import boto
5import boto.s3.connection
6access_key = 'insert_access_key'
7secret_key = 'insert_secret_key'
8
9pidfile = "/tmp/copytoceph.pid"
10def check_pid(pid):
11 try:
12 os.kill(pid, 0)
13 except OSError:
14 return False
15 else:
16 return True
17
18if os.path.isfile(pidfile):
19 pid = long(open(pidfile, 'r').read())
20 if check_pid(pid):
21 print "%s already exists, doing natting" % pidfile
22 sys.exit()
23
24pid = str(os.getpid())
25file(pidfile, 'w').write(pid)
26
27conn = boto.connect_s3(
28 aws_access_key_id = access_key,
29 aws_secret_access_key = secret_key,
30 host = 'cephgw1',
31 port = 8080,
32 is_secure=False,
33 calling_format = boto.s3.connection.OrdinaryCallingFormat(),
34 )
35
36mybucket = conn.get_bucket('test')
37mylist = mybucket.list()
38i = 0
39for root, dirnames, filenames in os.walk('/var/storage/photoes', followlinks=True):
40 for filename in fnmatch.filter(filenames, '*'):
41 myfile = os.path.join(root,filename)
42 key = mybucket.get_key(filename)
43 i += 1
44 if not key:
45 key = mybucket.new_key(filename)
46 key.set_contents_from_filename(myfile)
47 key.set_canned_acl('public-read')
48 print key
49 print i
50os.unlink(pidfile)