Exemplo n.º 1
0
def send_request(parameters, request_body=None):
    print '****************'
    print '* REQUEST      *'
    print '****************'

    print '%s https://%s%s' % (parameters.method, DEFAULT_HOST,
                               parameters.createPath())

    if request_body:
        print request_body

    print '****************'
    print '* RESPONSE     *'
    print '****************'

    parameters.setAuthHeader(loadcredentials())
    with closing(httplib.HTTPSConnection(DEFAULT_HOST)) as conn:
        conn.putrequest(parameters.method, parameters.createPath())

        for name, value in parameters.headers.iteritems():
            conn.putheader(name, value)

        conn.endheaders()

        if request_body:
            conn.send(request_body)

        response = conn.getresponse()
        print response.status, response.getheaders()

        response_dom = xml.dom.minidom.parseString(response.read())
        print response_dom.toprettyxml()
Exemplo n.º 2
0
def send_request(parameters, request_body=None):
    print "****************"
    print "* REQUEST      *"
    print "****************"

    print "%s https://%s%s" % (parameters.method, DEFAULT_HOST, parameters.createPath())

    if request_body:
        print request_body

    print "****************"
    print "* RESPONSE     *"
    print "****************"

    parameters.setAuthHeader(loadcredentials())
    with closing(httplib.HTTPSConnection(DEFAULT_HOST)) as conn:
        conn.putrequest(parameters.method, parameters.createPath())

        for name, value in parameters.headers.iteritems():
            conn.putheader(name, value)

        conn.endheaders()

        if request_body:
            conn.send(request_body)

        response = conn.getresponse()
        print response.status, response.getheaders()

        response_dom = xml.dom.minidom.parseString(response.read())
        print response_dom.toprettyxml()
Exemplo n.º 3
0
    def testShouldCreateAndDeleteBucket(self):
        client = S3Client(loadcredentials())
        bucket_name = "test-" + str(uuid.uuid4())

        client.createBucket(bucket_name)
        self.failUnless(client.bucketExists(bucket_name))

        bucket_list = client.listBuckets()
        self.failUnless(len(bucket_list) > 0)
        self.failUnless(bucket_name in bucket_list)

        client.deleteBucket(bucket_name)
        self.failIf(client.bucketExists(bucket_name))
Exemplo n.º 4
0
    def testShouldCreateAndDeleteBucket(self):
        client = S3Client(loadcredentials())
        bucket_name = "test-" + str(uuid.uuid4())

        client.createBucket(bucket_name)
        self.failUnless(client.bucketExists(bucket_name))

        bucket_list = client.listBuckets()
        self.failUnless(len(bucket_list) > 0)
        self.failUnless(bucket_name in bucket_list)

        client.deleteBucket(bucket_name)
        self.failIf(client.bucketExists(bucket_name))
Exemplo n.º 5
0
    def testShouldCreateAndDeleteObjectInBucket(self):
        client = S3Client(loadcredentials())

        bucket_name = "test-" + str(uuid.uuid4())
        client.createBucket(bucket_name)

        object_key = 's3client.py'
        file_path = os.path.join(os.getcwd(), object_key)
        client.createObject(bucket_name, object_key, file_path)

        self.failUnless(client.objectExists(bucket_name, object_key))

        client.deleteObject(bucket_name, object_key)
        self.failIf(client.objectExists(bucket_name, object_key))

        client.deleteBucket(bucket_name)
Exemplo n.º 6
0
    def testShouldCreateAndDeleteObjectInBucket(self):
        client = S3Client(loadcredentials())

        bucket_name = "test-" + str(uuid.uuid4())
        client.createBucket(bucket_name)

        object_key = 's3client.py'
        file_path = os.path.join(os.getcwd(), object_key)
        client.createObject(bucket_name, object_key, file_path)

        self.failUnless(client.objectExists(bucket_name, object_key))

        client.deleteObject(bucket_name, object_key)
        self.failIf(client.objectExists(bucket_name, object_key))

        client.deleteBucket(bucket_name)
Exemplo n.º 7
0
    def testCannotDeleteBucketWithObject(self):
        client = S3Client(loadcredentials())

        bucket_name = "test-" + str(uuid.uuid4())
        client.createBucket(bucket_name)

        object_key = 's3client.py'
        file_path = os.path.join(os.getcwd(), object_key)
        client.createObject(bucket_name, object_key, file_path)

        try:
            client.deleteBucket(bucket_name)
            self.fail('Should have failed to delete a bucket with an object')
        except BadHttpResponse:
            pass

        client.deleteObject(bucket_name, object_key)
        client.deleteBucket(bucket_name)
Exemplo n.º 8
0
    def testCanDownloadUploadedFile(self):
        client = S3Client(loadcredentials())

        bucket_name = "test-" + str(uuid.uuid4())
        client.createBucket(bucket_name)

        object_key = 's3client.py'
        file_path = os.path.join(os.getcwd(), object_key)
        client.createObject(bucket_name, object_key, file_path)

        temp_file_path = os.path.join(tempfile.gettempdir(), str(uuid.uuid4()))
        client.downloadObject(bucket_name, object_key, temp_file_path)

        self.assertEqual(client.computeMD5(file_path), client.computeMD5(temp_file_path))

        os.remove(temp_file_path)
        client.deleteObject(bucket_name, object_key)
        client.deleteBucket(bucket_name)
Exemplo n.º 9
0
    def testCannotDeleteBucketWithObject(self):
        client = S3Client(loadcredentials())

        bucket_name = "test-" + str(uuid.uuid4())
        client.createBucket(bucket_name)

        object_key = 's3client.py'
        file_path = os.path.join(os.getcwd(), object_key)
        client.createObject(bucket_name, object_key, file_path)

        try:
            client.deleteBucket(bucket_name)
            self.fail('Should have failed to delete a bucket with an object')
        except BadHttpResponse:
            pass

        client.deleteObject(bucket_name, object_key)
        client.deleteBucket(bucket_name)
Exemplo n.º 10
0
    def testCanDownloadUploadedFile(self):
        client = S3Client(loadcredentials())

        bucket_name = "test-" + str(uuid.uuid4())
        client.createBucket(bucket_name)

        object_key = 's3client.py'
        file_path = os.path.join(os.getcwd(), object_key)
        client.createObject(bucket_name, object_key, file_path)

        temp_file_path = os.path.join(tempfile.gettempdir(), str(uuid.uuid4()))
        client.downloadObject(bucket_name, object_key, temp_file_path)

        self.assertEqual(client.computeMD5(file_path),
                         client.computeMD5(temp_file_path))

        os.remove(temp_file_path)
        client.deleteObject(bucket_name, object_key)
        client.deleteBucket(bucket_name)
Exemplo n.º 11
0
    def testCanDownloadFileUsingPublicURL(self):
        client = S3Client(loadcredentials(), True)

        bucket_name = "test-" + str(uuid.uuid4())
        client.createBucket(bucket_name)

        object_key = 's3client.py'
        file_path = os.path.join(os.getcwd(), object_key)
        client.createObject(bucket_name, object_key, file_path)

        temp_file_path = os.path.join(tempfile.gettempdir(), str(uuid.uuid4()))
        expires = datetime.datetime.now() + datetime.timedelta(days=1)
        urllib.urlretrieve(client.publicURL(bucket_name, object_key, expires), temp_file_path)

        self.assertEqual(client.computeMD5(file_path), client.computeMD5(temp_file_path))

        os.remove(temp_file_path)
        client.deleteObject(bucket_name, object_key)
        client.deleteBucket(bucket_name)
Exemplo n.º 12
0
    def testCanDownloadFileUsingPublicURL(self):
        client = S3Client(loadcredentials(), True)

        bucket_name = "test-" + str(uuid.uuid4())
        client.createBucket(bucket_name)

        object_key = 's3client.py'
        file_path = os.path.join(os.getcwd(), object_key)
        client.createObject(bucket_name, object_key, file_path)

        temp_file_path = os.path.join(tempfile.gettempdir(), str(uuid.uuid4()))
        expires = datetime.datetime.now() + datetime.timedelta(days=1)
        urllib.urlretrieve(client.publicURL(bucket_name, object_key, expires),
                           temp_file_path)

        self.assertEqual(client.computeMD5(file_path),
                         client.computeMD5(temp_file_path))

        os.remove(temp_file_path)
        client.deleteObject(bucket_name, object_key)
        client.deleteBucket(bucket_name)
Exemplo n.º 13
0
 def testShouldReturnOctetStreamForUnknownFileType(self):
     client = S3Client(loadcredentials())
     self.assertEqual('application/octet-stream', client.getMimeType('/foo/file.foo'))
Exemplo n.º 14
0
def connect():
    credentials = loadcredentials()
    access_key = credentials.access_key_id
    secret_key = credentials.secret_access_key
    return connect_to_region(EC2_REGION, aws_access_key_id=access_key, aws_secret_access_key=secret_key)
Exemplo n.º 15
0
        buf = input(CHUNK_SIZE)
        while len(buf) > 0:
            output(buf)
            buf = input(CHUNK_SIZE)


class BadHttpResponse(Exception):
    """Raised when an unexpected status code is returned"""
    pass


class S3Object:
    def __init__(self, name, size, last_modified):
        self.last_modified = last_modified
        self.size = size
        self.name = name

    def describe(self):
        return self.name, self.size, self.last_modified

    def __str__(self):
        return '%s -- %s bytes -- %s' % self.describe()


if __name__ == '__main__':
    client = S3Client(loadcredentials())
    for bucket_name in client.listBuckets():
        print "\nBucket:", bucket_name
        for object in client.listObjects(bucket_name):
            print "Object:", object
Exemplo n.º 16
0
def connect():
    credentials = loadcredentials()
    access_key = credentials.access_key_id
    secret_key = credentials.secret_access_key
    return connect_to_region(EC2_REGION, aws_access_key_id=access_key, aws_secret_access_key=secret_key)
Exemplo n.º 17
0
 def testShouldReturnOctetStreamForUnknownFileType(self):
     client = S3Client(loadcredentials())
     self.assertEqual('application/octet-stream',
                      client.getMimeType('/foo/file.foo'))
Exemplo n.º 18
0
 def testShouldFindPublicBuckets(self):
     client = S3Client(loadcredentials())
     self.failUnless(client.bucketExists('public'))
     self.failUnless(client.bucketExists('Public'))
Exemplo n.º 19
0
 def testShouldReturnPdfMimieTypeForPdfFile(self):
     client = S3Client(loadcredentials())
     self.assertEqual('application/pdf', client.getMimeType('/foo/file.pdf'))
Exemplo n.º 20
0
        return base64.b64encode(digest)

    def copy(self, input, output):
        buf = input(CHUNK_SIZE)
        while len(buf) > 0:
            output(buf)
            buf = input(CHUNK_SIZE)

class BadHttpResponse(Exception):
    """Raised when an unexpected status code is returned"""
    pass

class S3Object:
    def __init__(self, name, size, last_modified):
        self.last_modified = last_modified
        self.size = size
        self.name = name

    def describe(self):
        return self.name, self.size, self.last_modified

    def __str__(self):
        return '%s -- %s bytes -- %s' % self.describe()

if __name__ == '__main__':
    client = S3Client(loadcredentials())
    for bucket_name in client.listBuckets():
        print "\nBucket:", bucket_name
        for object in client.listObjects(bucket_name):
            print "Object:", object
Exemplo n.º 21
0
 def testShouldFindPublicBuckets(self):
     client = S3Client(loadcredentials())
     self.failUnless(client.bucketExists('public'))
     self.failUnless(client.bucketExists('Public'))
Exemplo n.º 22
0
 def testShouldReturnPdfMimieTypeForPdfFile(self):
     client = S3Client(loadcredentials())
     self.assertEqual('application/pdf',
                      client.getMimeType('/foo/file.pdf'))