/usr/share/pyshared/txaws/s3/model.py is in python-txaws 0.2.3-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | # Copyright (C) 2009 Canonical Ltd
# Copyright (C) 2009 Duncan McGreggor <oubiwann@adytum.us>
# Copyright (C) 2011 Drew Smathers <drew.smathers@gmail.com>
# Copyright (C) 2012 New Dream Network (DreamHost)
# Licenced under the txaws licence available at /LICENSE in the txaws source.
from txaws.util import XML
class Bucket(object):
"""
An Amazon S3 storage bucket.
"""
def __init__(self, name, creation_date):
self.name = name
self.creation_date = creation_date
class ItemOwner(object):
"""
The owner of a content item.
"""
def __init__(self, id, display_name):
self.id = id
self.display_name = display_name
class BucketItem(object):
"""
The contents of an Amazon S3 bucket.
"""
def __init__(self, key, modification_date, etag, size, storage_class,
owner=None):
self.key = key
self.modification_date = modification_date
self.etag = etag
self.size = size
self.storage_class = storage_class
self.owner = owner
class BucketListing(object):
"""
A mapping for the data in a bucket listing.
"""
def __init__(self, name, prefix, marker, max_keys, is_truncated,
contents=None, common_prefixes=None):
self.name = name
self.prefix = prefix
self.marker = marker
self.max_keys = max_keys
self.is_truncated = is_truncated
self.contents = contents
self.common_prefixes = common_prefixes
class LifecycleConfiguration(object):
"""
Returns the lifecycle configuration information set on the bucket.
"""
def __init__(self, rules):
self.rules = rules
class LifecycleConfigurationRule(object):
"""
Container for elements that describe a lifecycle rule.
"""
def __init__(self, id, prefix, status, expiration):
self.id = id
self.prefix = prefix
self.status = status
self.expiration = expiration
class WebsiteConfiguration(object):
"""
A mapping for the data in a bucket website configuration.
"""
def __init__(self, index_suffix, error_key=None):
self.index_suffix = index_suffix
self.error_key = error_key
class NotificationConfiguration(object):
"""
A mapping for the data in a bucket notification configuration.
"""
def __init__(self, topic=None, event=None):
self.topic = topic
self.event = event
class VersioningConfiguration(object):
"""
Container for the bucket versioning configuration.
According to Amazon:
C{MfaDelete}: This element is only returned if the bucket has been
configured with C{MfaDelete}. If the bucket has never been so configured,
this element is not returned. The possible values are None, "Disabled" or
"Enabled".
C{Status}: If the bucket has never been so configured, this element is not
returned. The possible values are None, "Suspended" or "Enabled".
"""
def __init__(self, mfa_delete=None, status=None):
self.mfa_delete = mfa_delete
self.status = status
class FileChunk(object):
"""
An Amazon S3 file chunk.
S3 returns file chunks, 10 MB at a time, until the entire file is returned.
These chunks need to be assembled once they are all returned.
"""
class RequestPayment(object):
"""
A payment request.
@param payer: One of 'Requester' or 'BucketOwner'.
"""
payer_choices = ("Requester", "BucketOwner")
def __init__(self, payer):
if payer not in self.payer_choices:
raise ValueError("Invalid value for payer: `%s`. Must be one of "
"%s." % (payer, ",".join(self.payer_choices)))
self.payer = payer
def to_xml(self):
"""
Convert this request into a C{RequestPaymentConfiguration} XML
document.
"""
return ("<RequestPaymentConfiguration "
'xmlns="http://s3.amazonaws.com/doc/2006-03-01/">\n'
" <Payer>%s</Payer>\n"
"</RequestPaymentConfiguration>" % self.payer)
@classmethod
def from_xml(cls, xml_bytes):
"""
Create an instance from a C{RequestPaymentConfiguration} XML document.
"""
root = XML(xml_bytes)
return cls(root.findtext("Payer"))
|