diff --git a/amazons3/admin/conf.php b/amazons3/admin/conf.php
index 1c36f2d..a081b41 100755
--- a/amazons3/admin/conf.php
+++ b/amazons3/admin/conf.php
@@ -23,6 +23,7 @@
osc_set_preference('bucket', Params::getParam('bucket'), 'amazons3', 'STRING');
osc_set_preference('access_key', Params::getParam('access_key'), 'amazons3', 'STRING');
osc_set_preference('secret_key', Params::getParam('secret_key'), 'amazons3', 'STRING');
+ osc_set_preference('cloudfront', Params::getParam('cloudfront'), 'amazons3', 'STRING');
if(osc_version()<320) {
echo '
' . __('Congratulations. The plugin is now configured', 'amazons3') . '.
' ;
osc_reset_preferences();
@@ -60,6 +61,10 @@
+
+
+
+
http://aws.amazon.com/s3/'); ?>
diff --git a/amazons3/index.php b/amazons3/index.php
index 00b2f8a..c90a883 100755
--- a/amazons3/index.php
+++ b/amazons3/index.php
@@ -1,130 +1,136 @@
autocommit(true);
- }
+ Plugin Name: Amazon S3
+ Plugin URI: http://www.osclass.org/
+ Description: This plugin allows you to upload users' images to Amazon S3 service
+ Version: 1.0.3
+ Author: OSClass
+ Author URI: http://www.osclass.org/
+ Short Name: amazons3
+ Plugin update URI: amazon-s3
+ */
- function amazon_uninstall() {
- osc_delete_preference('bucket', 'amazons3');
- osc_delete_preference('access_key', 'amazons3');
- osc_delete_preference('secret_key', 'amazons3');
- }
-
- function amazon_upload($resource) {
- $s3 = new S3(osc_get_preference('access_key', 'amazons3'), osc_get_preference('secret_key', 'amazons3'));
- @$s3->putBucket(osc_get_preference('bucket', 'amazons3'), S3::ACL_PUBLIC_READ);
- if(osc_keep_original_image()) {
- $s3->putObjectFile(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '_original.jpg', osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . '_original.jpg', S3::ACL_PUBLIC_READ);
- }
- $s3->putObjectFile(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '.jpg', osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . '.jpg', S3::ACL_PUBLIC_READ);
- $s3->putObjectFile(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '_preview.jpg', osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . '_preview.jpg', S3::ACL_PUBLIC_READ);
- $s3->putObjectFile(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '_thumbnail.jpg', osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . '_thumbnail.jpg', S3::ACL_PUBLIC_READ);
- amazon_unlink_resource($resource);
+
+// load necessary functions
+require_once osc_plugins_path() . osc_plugin_folder(__FILE__) . 'S3.php';
+
+function amazon_install() {
+ $conn = getConnection();
+ osc_set_preference('bucket', '', 'amazons3', 'STRING');
+ osc_set_preference('access_key', '', 'amazons3', 'STRING');
+ osc_set_preference('secret_key', '', 'amazons3', 'STRING');
+ osc_set_preference('cloudfront', '', 'amazons3', 'STRING');
+ $conn->autocommit(true);
+}
+
+function amazon_uninstall() {
+ osc_delete_preference('bucket', 'amazons3');
+ osc_delete_preference('access_key', 'amazons3');
+ osc_delete_preference('secret_key', 'amazons3');
+ osc_delete_preference('cloudfront', 'amazons3');
+}
+
+function amazon_upload($resource) {
+ $s3 = new S3(osc_get_preference('access_key', 'amazons3'), osc_get_preference('secret_key', 'amazons3'));
+ @$s3->putBucket(osc_get_preference('bucket', 'amazons3'), S3::ACL_PUBLIC_READ);
+ if (osc_keep_original_image()) {
+ $s3->putObjectFile(str_replace("oc-content/", $resource['s_path'], osc_content_path()) . $resource['pk_i_id'] . '_original.'. $resource['s_extension'], osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . '_original.'. $resource['s_extension'], S3::ACL_PUBLIC_READ);
}
-
- function amazon_resource_path($path) {
- return "http://". osc_get_preference('bucket', 'amazons3') .".s3.amazonaws.com/" . str_replace(osc_base_url().osc_resource_field("s_path"), '', $path);
+
+ $s3->putObjectFile(str_replace("oc-content/", $resource['s_path'], osc_content_path()) . $resource['pk_i_id'] . '.'. $resource['s_extension'], osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . '.'. $resource['s_extension'], S3::ACL_PUBLIC_READ);
+ $s3->putObjectFile(str_replace("oc-content/", $resource['s_path'], osc_content_path()) . $resource['pk_i_id'] . '_preview.'. $resource['s_extension'], osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . '_preview.'. $resource['s_extension'], S3::ACL_PUBLIC_READ);
+ $s3->putObjectFile(str_replace("oc-content/", $resource['s_path'], osc_content_path()) . $resource['pk_i_id'] . '_thumbnail.'. $resource['s_extension'], osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . '_thumbnail.'. $resource['s_extension'], S3::ACL_PUBLIC_READ);
+ amazon_unlink_resource($resource);
+}
+
+function amazon_resource_path($path) {
+ $cloudfront = osc_get_preference('cloudfront', 'amazons3');
+ if (!empty($cloudfront)) {
+ return "http://" . $cloudfront. "/" . str_replace(osc_base_url() . osc_resource_field("s_path"), '', $path);
}
-
- function amazon_regenerate_image($resource) {
- $s3 = new S3(osc_get_preference('access_key', 'amazons3'), osc_get_preference('secret_key', 'amazons3'));
- $path = $resource['pk_i_id']. "_original.jpg";
- $img = @$s3->getObject(osc_get_preference('bucket','amazons3'), $path);
- if(!$img) {
- $path = $resource['pk_i_id']. ".jpg";
- $img = @$s3->getObject(osc_get_preference('bucket','amazons3'), $path);
- }
- if(!$img) {
- $path = $resource['pk_i_id']. "_thumbnail.jpg";
- $img = @$s3->getObject(osc_get_preference('bucket','amazons3'), $path);
- }
- if($img) {
- $s3->getObject(osc_get_preference('bucket','amazons3'), $path, osc_content_path() . 'uploads/' . $resource['pk_i_id'] . ".jpg");
- @$s3->deleteObject(osc_get_preference('bucket','amazons3'), $resource['pk_i_id']. "_original.jpg");
- @$s3->deleteObject(osc_get_preference('bucket','amazons3'), $resource['pk_i_id']. ".jpg");
- @$s3->deleteObject(osc_get_preference('bucket','amazons3'), $resource['pk_i_id']. "_preview.jpg");
- @$s3->deleteObject(osc_get_preference('bucket','amazons3'), $resource['pk_i_id']. "_thumbnail.jpg");
- }
+ return "http://" . osc_get_preference('bucket', 'amazons3') . ".s3.amazonaws.com/" . str_replace(osc_base_url() . osc_resource_field("s_path"), '', $path);
+}
+
+function amazon_regenerate_image($resource) {
+ $s3 = new S3(osc_get_preference('access_key', 'amazons3'), osc_get_preference('secret_key', 'amazons3'));
+ $path = $resource['pk_i_id'] . "_original.jpg";
+ $img = @$s3->getObject(osc_get_preference('bucket', 'amazons3'), $path);
+ if (!$img) {
+ $path = $resource['pk_i_id'] . ".jpg";
+ $img = @$s3->getObject(osc_get_preference('bucket', 'amazons3'), $path);
}
-
- function amazon_unlink_resource($resource) {
- @unlink(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '_original.jpg');
- @unlink(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '.jpg');
- @unlink(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '_preview.jpg');
- @unlink(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '_thumbnail.jpg');
+ if (!$img) {
+ $path = $resource['pk_i_id'] . "_thumbnail.jpg";
+ $img = @$s3->getObject(osc_get_preference('bucket', 'amazons3'), $path);
}
-
- function amazon_delete_from_bucket($resource) {
- $s3 = new S3(osc_get_preference('access_key', 'amazons3'), osc_get_preference('secret_key', 'amazons3'));
- @$s3->deleteObject(osc_get_preference('bucket','amazons3'), $resource['pk_i_id']. "_original.jpg");
- @$s3->deleteObject(osc_get_preference('bucket','amazons3'), $resource['pk_i_id']. ".jpg");
- @$s3->deleteObject(osc_get_preference('bucket','amazons3'), $resource['pk_i_id']. "_preview.jpg");
- @$s3->deleteObject(osc_get_preference('bucket','amazons3'), $resource['pk_i_id']. "_thumbnail.jpg");
+ if ($img) {
+ $s3->getObject(osc_get_preference('bucket', 'amazons3'), $path, osc_content_path() . 'uploads/' . $resource['pk_i_id'] . ".jpg");
+ @$s3->deleteObject(osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . "_original.jpg");
+ @$s3->deleteObject(osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . ".jpg");
+ @$s3->deleteObject(osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . "_preview.jpg");
+ @$s3->deleteObject(osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . "_thumbnail.jpg");
}
-
+}
+
+function amazon_unlink_resource($resource) {
+ @unlink(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '_original.jpg');
+ @unlink(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '.jpg');
+ @unlink(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '_preview.jpg');
+ @unlink(osc_content_path() . 'uploads/' . $resource['pk_i_id'] . '_thumbnail.jpg');
+}
- function amazon_admin_menu() {
- if(osc_version()<320) {
- echo '
+function amazon_delete_from_bucket($resource) {
+ $s3 = new S3(osc_get_preference('access_key', 'amazons3'), osc_get_preference('secret_key', 'amazons3'));
+ @$s3->deleteObject(osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . "_original.jpg");
+ @$s3->deleteObject(osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . ".jpg");
+ @$s3->deleteObject(osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . "_preview.jpg");
+ @$s3->deleteObject(osc_get_preference('bucket', 'amazons3'), $resource['pk_i_id'] . "_thumbnail.jpg");
+}
+
+function amazon_admin_menu() {
+ if (osc_version() < 320) {
+ echo '
';
- } else {
- osc_add_admin_submenu_divider('plugins', 'Amazon S3 plugin', 'amazons3_divider', 'administrator');
- osc_add_admin_submenu_page('plugins', __('Amazon S3 options', 'amazons3'), osc_route_admin_url('amazons3-admin-conf'), 'amazons3_settings', 'administrator');
- }
+ } else {
+ osc_add_admin_submenu_divider('plugins', 'Amazon S3 plugin', 'amazons3_divider', 'administrator');
+ osc_add_admin_submenu_page('plugins', __('Amazon S3 options', 'amazons3'), osc_route_admin_url('amazons3-admin-conf'), 'amazons3_settings', 'administrator');
}
-
- function amazon_configure_link() {
- if(osc_version()<320) {
- osc_redirect_to(osc_admin_render_plugin_url(osc_plugin_folder(__FILE__)).'admin/conf.php');
- } else {
- osc_redirect_to(osc_route_admin_url('amazons3-admin-conf'));
- }
+}
+
+function amazon_configure_link() {
+ if (osc_version() < 320) {
+ osc_redirect_to(osc_admin_render_plugin_url(osc_plugin_folder(__FILE__)) . 'admin/conf.php');
+ } else {
+ osc_redirect_to(osc_route_admin_url('amazons3-admin-conf'));
}
-
- if(osc_version()>=320) {
- /**
- * ADD ROUTES (VERSION 3.2+)
- */
- osc_add_route('amazons3-admin-conf', 'amazons3/admin/conf', 'amazons3/admin/conf', osc_plugin_folder(__FILE__).'admin/conf.php');
- }
-
-
+}
+
+if (osc_version() >= 320) {
/**
- * ADD HOOKS
+ * ADD ROUTES (VERSION 3.2+)
*/
- osc_register_plugin(osc_plugin_path(__FILE__), 'amazon_install');
- osc_add_hook(osc_plugin_path(__FILE__)."_uninstall", 'amazon_uninstall');
- osc_add_hook(osc_plugin_path(__FILE__)."_configure", 'amazon_configure_link');
-
- osc_add_hook('uploaded_file', 'amazon_upload');
- osc_add_filter('resource_path', 'amazon_resource_path');
- osc_add_hook('regenerate_image', 'amazon_regenerate_image');
- osc_add_hook('regenerated_image', 'amazon_upload');
- osc_add_hook('delete_resource', 'amazon_delete_from_bucket');
- if(osc_version()<320) {
- osc_add_hook('admin_menu', 'amazon_admin_menu');
- } else {
- osc_add_hook('admin_menu_init', 'amazon_admin_menu');
- }
-
+ osc_add_route('amazons3-admin-conf', 'amazons3/admin/conf', 'amazons3/admin/conf', osc_plugin_folder(__FILE__) . 'admin/conf.php');
+}
+
+
+/**
+ * ADD HOOKS
+ */
+osc_register_plugin(osc_plugin_path(__FILE__), 'amazon_install');
+osc_add_hook(osc_plugin_path(__FILE__) . "_uninstall", 'amazon_uninstall');
+osc_add_hook(osc_plugin_path(__FILE__) . "_configure", 'amazon_configure_link');
+
+osc_add_hook('uploaded_file', 'amazon_upload');
+osc_add_filter('resource_path', 'amazon_resource_path');
+osc_add_hook('regenerate_image', 'amazon_regenerate_image');
+osc_add_hook('regenerated_image', 'amazon_upload');
+osc_add_hook('delete_resource', 'amazon_delete_from_bucket');
+if (osc_version() < 320) {
+ osc_add_hook('admin_menu', 'amazon_admin_menu');
+} else {
+ osc_add_hook('admin_menu_init', 'amazon_admin_menu');
+}
?>