예제 #1
0
 def for_key(self, key, params=None, bucket_name=None):
     if params:
         self.update(params)
     if key.path:
         t = os.path.split(key.path)
         self['OriginalLocation'] = t[0]
         self['OriginalFileName'] = t[1]
         mime_type = mimetypes.guess_type(t[1])[0]
         if mime_type is None:
             mime_type = 'application/octet-stream'
         self['Content-Type'] = mime_type
         s = os.stat(key.path)
         t = time.gmtime(s[7])
         self['FileAccessedDate'] = get_ts(t)
         t = time.gmtime(s[8])
         self['FileModifiedDate'] = get_ts(t)
         t = time.gmtime(s[9])
         self['FileCreateDate'] = get_ts(t)
     else:
         self['OriginalFileName'] = key.name
         self['OriginalLocation'] = key.bucket.name
         self['ContentType'] = key.content_type
     self['Host'] = gethostname()
     if bucket_name:
         self['Bucket'] = bucket_name
     else:
         self['Bucket'] = key.bucket.name
     self['InputKey'] = key.name
     self['Size'] = key.size
예제 #2
0
 def read_message(self):
     niftycloud.log.info('read_message')
     message = self.input_queue.read(self.processing_time)
     if message:
         niftycloud.log.info(message.get_body())
         key = 'Service-Read'
         message[key] = get_ts()
     return message
예제 #3
0
 def write_message(self, message):
     message['Service-Write'] = get_ts()
     message['Server'] = self.name
     if 'HOSTNAME' in os.environ:
         message['Host'] = os.environ['HOSTNAME']
     else:
         message['Host'] = 'unknown'
     message['Instance-ID'] = self.instance_id
     if self.output_queue:
         niftycloud.log.info('Writing message to SQS queue: %s' % self.output_queue.id)
         self.output_queue.write(message)
     if self.output_domain:
         niftycloud.log.info('Writing message to SDB domain: %s' % self.output_domain.name)
         item_name = '/'.join([message['Service-Write'], message['Bucket'], message['InputKey']])
         self.output_domain.put_attributes(item_name, message)
예제 #4
0
 def __init__(self, config_file=None):
     self.instance_id = niftycloud.config.get('Instance', 'instance-id', 'default')
     self.name = self.__class__.__name__
     self.ts = get_ts()
     if config_file:
         niftycloud.config.read(config_file)