def clean_up_files(snap_id, group_id): group_document = get_group_document(group_id) if 'image_sources_to_delete' in group_document: image_sources_to_delete = group_document['image_sources_to_delete'].split(',') pictures = find_pictures({'snap_id': str(snap_id)}) for pic_id in pictures.keys(): if pictures[pic_id]['source'] in image_sources_to_delete: os.remove(pictures[pic_id]['uri']) pictures[pic_id]['uri'] = '' pictures[pic_id]['deleted'] = True else: shutil.move(pictures[pic_id]['uri'], current_app.config['PICTURE_SAVE_DIRECTORY']) pictures[pic_id]['uri'] = os.path.join(current_app.config['PICTURE_SAVE_DIRECTORY'], pictures[pic_id]['filename']) update_picture_document(pictures[pic_id]) os.rmdir(os.path.join(current_app.config['PICTURE_SAVE_DIRECTORY'], str(snap_id)))
def upload_files_to_s3(snap_id, group_id): group_document = get_group_document(group_id) if group_document['use_gallery']: image_sources_for_gallery = group_document['image_sources_for_gallery'].split(',') pictures = find_pictures({'snap_id': str(snap_id)}) #TODO the following assumes s3 and internet are working fine, make it more robust, with py.test tests too conn = boto.connect_s3(current_app.config['S3_ACCESS_KEY_ID'], current_app.config['S3_SECRET_ACCESS_KEY']) bucket = conn.get_bucket(current_app.config['S3_BUCKET_NAME']) for pic_id in pictures.keys(): if pictures[pic_id]['source'] in image_sources_for_gallery: destination = boto.s3.key.Key(bucket) destination.key = pictures[pic_id]['filename'] destination.set_contents_from_filename(pictures[pic_id]['uri']) destination.make_public() pic_gallery_url = destination.generate_url(expires_in=0, query_auth=False) pictures[pic_id]['gallery_url'] = pic_gallery_url update_picture_document(pictures[pic_id])
def upload_files_to_s3(snap_id, group_id): group_document = get_group_document(group_id) if group_document['use_gallery']: image_sources_for_gallery = group_document[ 'image_sources_for_gallery'].split(',') pictures = find_pictures({'snap_id': str(snap_id)}) #TODO the following assumes s3 and internet are working fine, make it more robust, with py.test tests too conn = boto.connect_s3(current_app.config['S3_ACCESS_KEY_ID'], current_app.config['S3_SECRET_ACCESS_KEY']) bucket = conn.get_bucket(current_app.config['S3_BUCKET_NAME']) for pic_id in pictures.keys(): if pictures[pic_id]['source'] in image_sources_for_gallery: destination = boto.s3.key.Key(bucket) destination.key = pictures[pic_id]['filename'] destination.set_contents_from_filename(pictures[pic_id]['uri']) destination.make_public() pic_gallery_url = destination.generate_url(expires_in=0, query_auth=False) pictures[pic_id]['gallery_url'] = pic_gallery_url update_picture_document(pictures[pic_id])
def clean_up_files(snap_id, group_id): group_document = get_group_document(group_id) if 'image_sources_to_delete' in group_document: image_sources_to_delete = group_document[ 'image_sources_to_delete'].split(',') pictures = find_pictures({'snap_id': str(snap_id)}) for pic_id in pictures.keys(): if pictures[pic_id]['source'] in image_sources_to_delete: os.remove(pictures[pic_id]['uri']) pictures[pic_id]['uri'] = '' pictures[pic_id]['deleted'] = True else: shutil.move(pictures[pic_id]['uri'], current_app.config['PICTURE_SAVE_DIRECTORY']) pictures[pic_id]['uri'] = os.path.join( current_app.config['PICTURE_SAVE_DIRECTORY'], pictures[pic_id]['filename']) update_picture_document(pictures[pic_id]) os.rmdir( os.path.join(current_app.config['PICTURE_SAVE_DIRECTORY'], str(snap_id)))