def upload()

in pantri/scripts/lib/fb_objectstore.py [0:0]


  def upload(self, objects_to_upload):
    """
    upload(self, objects)

    Uploads list of objects to object store. Unchanged files (filesize &
    modified time) are skipped. Relaies on swiftclient.service.SwiftService
    class to do a majority of the work to upload objects.
    """

    objects = []
    for obj in objects_to_upload:
      objects.append(
        swiftclient.service.SwiftUploadObject(
          source=os.path.join(self.paths['shelves'], obj),
          object_name=obj
        )
      )

    # Create connection to object store and upload objects
    with swiftclient.service.SwiftService(
      options={
        'os_storage_url': self.options['storage_url'],
        'os_auth_token': self.auth_token
      }
    ) as swift:
      # need for loop to read all responses returned. ie generators
      for response in swift.upload(
        container=self.options['object_store_container'],
        objects=objects,
        options={
          'changed': True,
          'segment_size': 4294967296,
          'use_slo': True,
          'segment_container': 'segments',
        }
      ):
        # Yield successful uploads
        if self.parse_response(response):
          yield response['object']