Στον σημερινό ψηφιακό κόσμο, οι εικόνες και τα βίντεο συχνά περιέχουν metadata που αποκαλύπτουν εκπληκτικό όγκο πληροφοριών για το αρχείο πολυμέσων. Αυτά τα metadata, όπως τα δεδομένα EXIF στις εικόνες, μπορούν να περιλαμβάνουν ευαίσθητες λεπτομέρειες όπως τοποθεσία, πληροφορίες συσκευής και άλλα. Για την προστασία του απορρήτου των χρηστών και την ενίσχυση της ασφάλειας, επιχειρήσεις σε διάφορους κλάδους μπορούν να επωφεληθούν από την αφαίρεση αυτών των metadata από τα αρχεία πολυμέσων.

Κλάδοι που Μπορούν να Επωφεληθούν:

  1. Πλατφόρμες Social Media
  2. E-Commerce
  3. Υγειονομική Περίθαλψη
  4. Ειδήσεις και Μέσα Ενημέρωσης
  5. Εκπαίδευση

Οφέλη από την Αφαίρεση Metadata:

  1. Ενισχυμένο Απόρρητο
  2. Ασφάλεια
  3. Συμμόρφωση (GDPR, HIPAA)
  4. Απλοποιημένη Διαχείριση
import boto3
import io
import os
from PIL import Image
from moviepy.editor import *

def lambda_handler(event, _): bucket_name = os.environ[‘S3_BUCKET_NAME’] s3 = boto3.client(‘s3’) object_name = event[‘Records’][0][‘s3’][‘object’][‘key’] file_name, file_extension = os.path.splitext(object_name)

supported_image_extensions = ['.jpg', '.jpeg', '.png', '.tiff', '.tif', '.heic', '.heif']
supported_video_extensions = ['.mp4', '.mov', '.avi', '.mkv', '.webm']

image_data = s3.get_object(Bucket=bucket_name, Key=object_name)

if file_extension.lower() in supported_image_extensions:
    with io.BytesIO(image_data['Body'].read()) as image_file:
        image = Image.open(image_file)
        image_format = image.format
        
        with io.BytesIO() as new_image_data:
            image.save(new_image_data, format=image_format)
            new_image_data.seek(0)
            
            s3.put_object(Bucket=bucket_name, Key=object_name, Body=new_image_data, Tagging='ExifDeleted=True')

elif file_extension.lower() in supported_video_extensions:
    with io.BytesIO(image_data['Body'].read()) as video_file:
        video = VideoFileClip(video_file)
        with io.BytesIO() as new_video_data:
            video.write_videofile(new_video_data, codec='libx264', audio_codec='aac')
            new_video_data.seek(0)
            
            s3.put_object(Bucket=bucket_name, Key=object_name, Body=new_video_data, Tagging='ExifDeleted=True')

Λάβε υπόψη ότι οι βιβλιοθήκες PIL και moviepy απαιτούν κάποιες shared libraries, οι οποίες μπορεί να μην είναι διαθέσιμες στο προεπιλεγμένο περιβάλλον Lambda. Θα χρειαστεί να δημιουργήσεις ένα custom Lambda layer που περιλαμβάνει και τις δύο shared libraries.

Ορίστε το Github Repository: https://github.com/flightlesstux/EXIF-Metadata-Remover

Συμπέρασμα

Το AWS Lambda script που παρέχουμε διευκολύνει την αφαίρεση metadata από εικόνες και βίντεο που ανεβαίνουν σε S3 buckets, ενισχύοντας το απόρρητο και την ασφάλεια σε ένα ευρύ φάσμα κλάδων.