def METHOD_NAME(self, stamp=None, extension=None):
    """Compute the S3 key in the source bucket.
    It is built from the file deposit ID + ID of the deposited file + version stamp.
    Parameters
    ----------
    stamp: Type[string]
        Passing a value for this argument will return the source S3 key for the deposited file
        assuming its active stamp is set to this value. This is useful to create an
        upload policy for this prospective version of the track, so that the client can
        upload the file to S3 and the confirmation lambda can set the `uploaded_on` field
        to this value only after the file upload and processing is successful.
    extension: Type[string]
        The extension used by the uploaded media. This extension is added at the end of the key
        to keep a record of the extension. We will use it in the update-state endpoint to
        record it in the database.
    Returns
    -------
    string
        The S3 key for the deposited file in the source bucket, where uploaded files are
        stored before they are converted and copied to the destination bucket.
    """
    # We don't want to deal with None value so we set it with an empty string
    extension = extension or ""
    # We check if the extension starts with a leading dot or not. If it's not the case we add
    # it at the beginning of the string
    if extension and not extension.startswith("."):
        extension = "." + extension
    stamp = stamp or to_timestamp(self.uploaded_on)
    return f"{self.file_depository.pk}/depositedfile/{self.pk}/{stamp}{extension}"