def remote_create(
     self,
     batch=None,
     failure=None,
     files=None,
     params=None,
     success=None,
     api_version=None,
 ):
     """Uploads filename and creates the AdImage object from it.
     It has same arguments as AbstractCrudObject.remote_create except it
     does not have the files argument but requires the 'filename' property
     to be defined.
     """
     if not self[self.Field.filename]:
         raise FacebookBadObjectError(
             "AdImage required a filename to be defined.",
         )
     filename = self[self.Field.filename]
     with open(filename, 'rb') as open_file:
         return_val = AbstractCrudObject.remote_create(
             self,
             files={filename: open_file},
             batch=batch,
             failure=failure,
             params=params,
             success=success,
             api_version=api_version,
         )
     return return_val