def METHOD_NAME(syn, project, schedule_for_cleanup, part_size):
    import logging
    logging.basicConfig()
    logging.getLogger(synapseclient.client.DEFAULT_LOGGER_NAME).setLevel(logging.DEBUG)
    dest_folder_name = "test_multipart_copy_{}".format(uuid.uuid4())
    # create a new folder with a storage location we own that we can copy to
    dest_folder, storage_location_setting, _ = syn.create_s3_storage_location(
        parent=project, folder_name=dest_folder_name
    )
    part_size = part_size
    file_size = int(part_size * 1.1)
    base_string = "".join(random.choices(string.ascii_lowercase, k=1024))
    file_content = base_string
    while len(file_content) < file_size:
        file_content += base_string
    part_md5_hexes = []
    part_count = file_size // part_size
    if file_size % part_size > 0:
        part_count += 1
    content_pos = 0
    for _ in range(part_count):
        next_pos = content_pos + part_size
        part_content = file_content[content_pos:next_pos]
        content_pos = next_pos
        md5 = hashlib.md5(part_content.encode("utf-8"))
        part_md5_hexes.append(md5.hexdigest())
    tmp = tempfile.NamedTemporaryFile(delete=False)
    schedule_for_cleanup(tmp.name)
    with open(tmp.name, "w") as tmp_out:
        tmp_out.write(file_content)
    file = File(tmp.name, parent=project)
    entity = syn.store(file)
    fhid = entity["dataFileHandleId"]
    #    source_file_handle = syn._get_file_handle_as_creator(fhid)
    dest_file_name = "{}_copy".format(entity.name)
    source_file_handle_assocation = {
        "fileHandleId": fhid,
        "associateObjectId": entity.id,
        "associateObjectType": "FileEntity",
    }
    dest_storage_location = storage_location_setting["storageLocationId"]
    copied_fhid = multipart_copy(
        syn,
        source_file_handle_assocation,
        dest_file_name,
        part_size,
        dest_storage_location,
    )
    copied_file_handle = syn._get_file_handle_as_creator(copied_fhid)
    dest_file = File(
        name=dest_file_name,
        parent=dest_folder,
    )
    dest_file["dataFileHandleId"] = copied_fhid
    dest_file["_file_handle"] = copied_file_handle
    dest_file_entity = syn.store(dest_file)
    dest_file_local = syn.get(dest_file_entity.id)
    with open(dest_file_local.path, "r") as dest_file_in:
        dest_file_content = dest_file_in.read()
    assert file_content == dest_file_content