'Compare each piece of metadata that we\'re setting with the one that\'s stored remotely
If one\'s different, upload again.
:rtype: bool'

def remote_changed(self):

    resource = self.engine.get_connection().objects()
    req = resource.get(bucket=self.engine.bucket_name, object=self.url)
    try:
        remote_metadata = req.execute()
    except HttpError as e:
        if (e.resp.status == 404):
            return True
        raise
    ignore_metadata = ['acl']
    for (k, v) in self.get_metadata().items():
        if ((k not in ignore_metadata) and (remote_metadata.get(k) != v)):
            return True
    return False
