Ejemplo n.º 1
0
def _handle_image_delete(mapper, conn, target):
    """
    Delete the local or remote image from 3rd service when delete the image.
    if path is not empty, assume local storage, delete using after_delete
    listener, if public_id is not null, assume using cloud service, delete
    using public_id.
    :param mapper:
    :param conn:
    :param target: image object to be deleted
    :return:
    """
    # TODO.xqliu The delete of image is not working for local image store
    Info.get_image_store_service().remove(target.path, target.public_id)
Ejemplo n.º 2
0
def save_image(owner, image_file):
    """
    Save image to an owner object
    :param service: The service to save the image,
                    use to isolate different storage service
    :param owner: Owner of this image object
    :param image_file: File storage object of the image
    :return: The image object created
    """
    from psi.app.models import Image
    service = Info.get_image_store_service()
    if owner.image is not None:
        existing_img_public_id = owner.image.path
        service.remove(existing_img_public_id)
    image = Image()
    owner.image = image
    public_id = str(uuid.uuid4())
    result = service.save(image_file, public_id=public_id)
    owner.image.path = result['url']
    owner.image.public_id = public_id
    return image