@ -17,45 +17,53 @@ import os
from PIL import Image
import swiftclient
from swiftclient.exceptions import ClientException
def resize_image ( image_path , resized_path ) :
with Image . open ( image_path ) as image :
image . thumbnail ( ( 75 , 75 ) )
image . thumbnail ( tuple ( x / 4 for x in image . size ) )
image . save ( resized_path )
def main ( context , container , object ) :
def main ( context , container_name , object_name ) :
conn = swiftclient . Connection (
session = context [ ' os_session ' ] ,
os_options = { ' region_name ' : ' RegionOne ' } ,
)
new_container = ' %s _thumb ' % container
# Download original photo
image_path = ' / %s ' % object
_ , obj_contents = conn . get_object ( container , object )
# Download original image
image_path = os . path . abspath ( ' ./ %s ' % object_name )
_ , obj_contents = conn . get_object ( container_name , object_name )
with open ( image_path , ' w ' ) as local :
local . write ( obj_contents )
print ( ' Downloaded object %s from container %s ' % ( object , container ) )
print ( ' Downloaded object %s from container %s ' %
( object_name , container_name ) )
thumb_path = ' /thumb_ %s ' % object
thumb_path = os . path . abspath ( ' . /%s _resized.png ' % object_name )
resize_image ( image_path , thumb_path )
print ( ' Resized. ' )
# Upload thumb photo
# Create new container if needed
new_container_name = ' %s _resized ' % container_name
try :
conn . head_container ( new_container_name )
except ClientException :
conn . put_container ( new_container_name )
print ( " New container %s created. " % new_container_name )
# Upload resized image
with open ( thumb_path , ' r ' ) as new_local :
conn . put_object (
new_container ,
object ,
new_container_name ,
object_name ,
contents = new_local ,
content_type = ' text/plain '
)
os . remove ( image_path )
os . remove ( thumb_path )
print ( ' Uploaded object %s to container %s ' % ( object , new_container ) )
print ( ' Uploaded object %s to container %s ' %
( object_name , new_container_name ) )