PageRenderTime 19ms CodeModel.GetById 12ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/boto-2.5.2/boto/services/message.py

#
Python | 58 lines | 34 code | 4 blank | 20 comment | 4 complexity | 7710019fbd4545ccf454a1e1ef4d5044 MD5 | raw file
 1# Copyright (c) 2006,2007 Mitch Garnaat http://garnaat.org/
 2#
 3# Permission is hereby granted, free of charge, to any person obtaining a
 4# copy of this software and associated documentation files (the
 5# "Software"), to deal in the Software without restriction, including
 6# without limitation the rights to use, copy, modify, merge, publish, dis-
 7# tribute, sublicense, and/or sell copies of the Software, and to permit
 8# persons to whom the Software is furnished to do so, subject to the fol-
 9# lowing conditions:
10#
11# The above copyright notice and this permission notice shall be included
12# in all copies or substantial portions of the Software.
13#
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
16# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
17# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
18# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20# IN THE SOFTWARE.
21
22from boto.sqs.message import MHMessage
23from boto.utils import get_ts
24from socket import gethostname
25import os, mimetypes, time
26
27class ServiceMessage(MHMessage):
28
29    def for_key(self, key, params=None, bucket_name=None):
30        if params:
31            self.update(params)
32        if key.path:
33            t = os.path.split(key.path)
34            self['OriginalLocation'] = t[0]
35            self['OriginalFileName'] = t[1]
36            mime_type = mimetypes.guess_type(t[1])[0]
37            if mime_type == None:
38                mime_type = 'application/octet-stream'
39            self['Content-Type'] = mime_type
40            s = os.stat(key.path)
41            t = time.gmtime(s[7])
42            self['FileAccessedDate'] = get_ts(t)
43            t = time.gmtime(s[8])
44            self['FileModifiedDate'] = get_ts(t)
45            t = time.gmtime(s[9])
46            self['FileCreateDate'] = get_ts(t)
47        else:
48            self['OriginalFileName'] = key.name
49            self['OriginalLocation'] = key.bucket.name
50            self['ContentType'] = key.content_type
51        self['Host'] = gethostname()
52        if bucket_name:
53            self['Bucket'] = bucket_name
54        else:
55            self['Bucket'] = key.bucket.name
56        self['InputKey'] = key.name
57        self['Size'] = key.size
58