Changeset 3118733
- Timestamp:
- 07/15/2024 09:17:08 PM (19 months ago)
- Location:
- arvancloud-object-storage
- Files:
-
- 28 added
- 4 deleted
- 14 edited
- 1 copied
-
tags/1.5.0 (copied) (copied from arvancloud-object-storage/trunk)
-
tags/1.5.0/.sass-cache/3c2d5fa112a3631ca317983998ff6e465c91828d (added)
-
tags/1.5.0/.sass-cache/3c2d5fa112a3631ca317983998ff6e465c91828d/_general.scssc (added)
-
tags/1.5.0/.sass-cache/3c2d5fa112a3631ca317983998ff6e465c91828d/main.scssc (added)
-
tags/1.5.0/.sass-cache/449453effbbbf66446288ffb459e23d7c9e9e236 (deleted)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_badge.scssc (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_box.scssc (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_buttons.scssc (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_footer.scssc (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_form.scssc (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_header.scssc (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_modal.scssc (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_progress.scssc (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_tab.scssc (added)
-
tags/1.5.0/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_utilities.scssc (added)
-
tags/1.5.0/.sass-cache/d47c2bb7a264f340ec065d7c77c8032e08afa8ee (deleted)
-
tags/1.5.0/README.txt (modified) (2 diffs)
-
tags/1.5.0/inc/Admin/Admin.php (modified) (11 diffs)
-
tags/1.5.0/inc/Admin/Controllers/BulkUploaderController.php (modified) (3 diffs)
-
tags/1.5.0/inc/Storage.php (modified) (1 diff)
-
tags/1.5.0/package-lock.json (modified) (3 diffs)
-
tags/1.5.0/vendor/composer/installed.php (modified) (2 diffs)
-
tags/1.5.0/wp-arvancloud-storage.php (modified) (2 diffs)
-
trunk/.sass-cache/3c2d5fa112a3631ca317983998ff6e465c91828d (added)
-
trunk/.sass-cache/3c2d5fa112a3631ca317983998ff6e465c91828d/_general.scssc (added)
-
trunk/.sass-cache/3c2d5fa112a3631ca317983998ff6e465c91828d/main.scssc (added)
-
trunk/.sass-cache/449453effbbbf66446288ffb459e23d7c9e9e236 (deleted)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_badge.scssc (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_box.scssc (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_buttons.scssc (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_footer.scssc (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_form.scssc (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_header.scssc (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_modal.scssc (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_progress.scssc (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_tab.scssc (added)
-
trunk/.sass-cache/9d13bf69fea0594ac337ddd1beeb8d340de0387a/_utilities.scssc (added)
-
trunk/.sass-cache/d47c2bb7a264f340ec065d7c77c8032e08afa8ee (deleted)
-
trunk/README.txt (modified) (2 diffs)
-
trunk/inc/Admin/Admin.php (modified) (11 diffs)
-
trunk/inc/Admin/Controllers/BulkUploaderController.php (modified) (3 diffs)
-
trunk/inc/Storage.php (modified) (1 diff)
-
trunk/package-lock.json (modified) (3 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/wp-arvancloud-storage.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
arvancloud-object-storage/tags/1.5.0/README.txt
r3081560 r3118733 5 5 Tested up to: 6.2 6 6 Requires PHP: 7.1 7 Stable tag: 1. 4.17 Stable tag: 1.5.0 8 8 License: GPLv3 9 9 License URI: http://www.gnu.org/licenses/gpl-3.0.html … … 48 48 49 49 == Changelog == 50 = 1.5.0 - 2024-07-17 = 51 * feature: Add sub directories to the buckets based on the default WordPress media folder structure 52 * feature: Bucket filter in Media list 53 * feature: New bucket info colmun in Media list 54 50 55 = 1.4.1 - 2024-05-05 = 51 56 * fix: Fix for APIKey expiration or change -
arvancloud-object-storage/tags/1.5.0/inc/Admin/Admin.php
r3078062 r3118733 115 115 'generate_acl_url' => wp_create_nonce( 'generate_acl_url' ), 116 116 ), 117 'ajax_url' => admin_url( 'admin-ajax.php' ),117 'ajax_url' => admin_url( 'admin-ajax.php' ), 118 118 ) ); 119 119 … … 524 524 if(is_dir($file)) 525 525 return; 526 526 527 $file_size = number_format( filesize( $file ) / 1048576, 2 ); // File size in MB 527 528 $up_dir = wp_upload_dir(); 529 $key = ltrim($up_dir['subdir'],'/').'/'; 528 530 if( $file_size > 400 ) { 529 531 $uploader = new MultipartUploader( $client, $file, [ 530 532 'bucket' => $this->bucket_name, 531 'key' => basename( $file ),533 'key' => $key.basename( $file ), 532 534 'ACL' => 'public-read', // or private 533 535 ]); … … 550 552 } else { 551 553 try { 552 $ client->putObject([554 $result = $client->putObject([ 553 555 'Bucket' => $this->bucket_name, 554 'Key' => basename( $file ),556 'Key' => $key.basename( $file ), 555 557 'SourceFile' => $file, 556 558 'ACL' => 'public-read', // or private … … 566 568 567 569 if( is_numeric( $post_id ) ) { 568 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url() ); 570 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url()); 571 update_post_meta( $post_id, 'acs_storage_file_dir', $key ); 569 572 570 573 if( !$this->acs_settings['keep-local-files'] && !wp_attachment_is_image( $post_id ) ) { … … 587 590 $query_vars = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY); 588 591 589 $result = []; 592 $result = []; 590 593 parse_str($query_vars, $result); 591 594 … … 599 602 if(empty($args['file'])) 600 603 return false; 601 var_dump($args['file']); 604 602 605 $upload_dir = wp_upload_dir(); 603 606 if(!self::check_valid_attachment($upload_dir['basedir'] . '/' . $args['file'])) … … 613 616 $this->upload_media_to_storage( $upload_dir['basedir'] . '/' . $args['file'], true ); 614 617 615 @(S3Singletone::get_instance())->get_s3client()->putObjectTagging([ 618 $key = ltrim($upload_dir['subdir'],'/').'/'; 619 $xxx = @(S3Singletone::get_instance())->get_s3client()->putObjectTagging([ 616 620 'Bucket' => $this->bucket_name, 617 'Key' => $ basename,621 'Key' => $key.$basename, 618 622 'Tagging' => [ 619 623 'TagSet' => [ … … 625 629 ], 626 630 ]); 631 627 632 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url() ); 628 633 update_post_meta( $post_id, 'acs_storage_file_dir', $key ); 629 634 // Check if image has extra sizes 630 635 if( array_key_exists( "sizes", $args ) ) { … … 792 797 793 798 if( !empty( $storage_file_url ) ) { 799 $storage_file_url .= get_post_meta( $attachment_id, 'acs_storage_file_dir', true ); 794 800 $file_name = basename( $url ); 795 801 $url = esc_url( $storage_file_url.$file_name ); … … 1831 1837 1832 1838 if( !empty( $storage_file_url ) ) { 1839 $storage_file_url .= get_post_meta( $site_icon_id, 'acs_storage_file_dir', true ); 1833 1840 $file_name = basename( $url ); 1834 1841 $url = esc_url( $storage_file_url.$file_name ); … … 1923 1930 if(!empty($opt['file_t_size']) and $opt['file_t_size']<$size) 1924 1931 return false; 1932 1925 1933 return true; 1926 1934 } 1935 1936 public function restrict_manage_posts(){ 1937 global $pagenow; 1938 if($pagenow != 'upload.php') 1939 return; 1940 $settings = Helper::get_storage_settings(); 1941 1942 $s3client = S3Singletone::get_instance(); 1943 $out = " 1944 <select name='bucket' class='form-control'> 1945 <option value=''>".__('Select Bucket','arvancloud-object-storage')."</option> 1946 <option value='all'>".__('All Buckets','arvancloud-object-storage')."</option>"; 1947 if(empty($settings['bucket_name'])) 1948 $buckets = $s3client->get_s3client()->listBuckets()['Buckets']; 1949 else{ 1950 $buckets = [['Name' => $settings['bucket_name']]]; 1951 } 1952 if(empty($buckets)) 1953 return; 1954 $select = empty($_GET['bucket'])?'':esc_sql($_GET['bucket']); 1955 foreach($buckets as $bucket){ 1956 $out .= "<option value='{$bucket['Name']}' ".($select==$bucket['Name']?'selected="selected"':'').">{$bucket['Name']}</option>"; 1957 } 1958 1959 echo "$out\n</select>"; 1960 } 1961 1962 function pre_get_media_attachment($query){ 1963 if(empty($_GET['bucket'])) 1964 return; 1965 1966 if (is_admin() && $query->get( 'post_type' ) == 'attachment' ){ 1967 1968 if($_GET['bucket']=='all'){ 1969 $postmeta_query = array(array( 1970 'key' => 'acs_storage_file_url', 1971 'compare' => '=', 1972 ),); 1973 }else{ 1974 $postmeta_query = array(array( 1975 'key' => 'acs_storage_file_url', 1976 'value' => 'https://'.esc_sql($_GET['bucket']).'.', 1977 'compare' => 'LIKE', 1978 ),); 1979 } 1980 1981 $query->set( 'meta_query', $postmeta_query ); 1982 } 1983 } 1984 1985 function manage_upload_columns($columns){ 1986 $columns['bucket_name'] = __( 'Bucket Name', 'arvancloud-object-storage' ); 1987 $columns['bucket_adder'] = __( 'Bucket Address', 'arvancloud-object-storage' ); 1988 return $columns; 1989 } 1990 1991 function manage_media_custom_column($column_name, $attachment_id){ 1992 if('bucket_name' == $column_name){ 1993 if($url = get_post_meta($attachment_id,'acs_storage_file_url',true)){ 1994 preg_match('#https://([^\.]+)#',$url,$match); 1995 echo $match[1]; 1996 } 1997 } 1998 if ( 'bucket_adder' == $column_name ) { 1999 if($url = get_post_meta($attachment_id,'acs_storage_file_url',true)) 2000 echo '<a style="cursor:pointer;" title="Click to copy" onclick="copy_to_clipboard(\''.$url.'\');">'.__('Copy address', 'arvancloud-object-storage').'</a>'; 2001 } 2002 } 2003 2004 function admin_footer(){ 2005 global $pagenow; 2006 if($pagenow != 'upload.php') 2007 return; 2008 ?> 2009 <script> 2010 function copy_to_clipboard(str){ 2011 var aux = document.createElement("input"); 2012 aux.setAttribute("value", str); 2013 document.body.appendChild(aux); 2014 aux.select(); 2015 document.execCommand("copy"); 2016 document.body.removeChild(aux); 2017 } 2018 </script> 2019 <?php 2020 } 1927 2021 } -
arvancloud-object-storage/tags/1.5.0/inc/Admin/Controllers/BulkUploaderController.php
r2939988 r3118733 294 294 295 295 $client = (S3Singletone::get_instance())->get_s3client(); 296 297 296 $up_dir = wp_upload_dir(); 297 $key = str_replace([$up_dir,basename( $file )],'',$file); 298 298 299 299 if( $file_size > 400 ) { 300 300 $uploader = new MultipartUploader( $client, $file, [ 301 301 'bucket' => $bucket_name, 302 'key' => basename( $file ),302 'key' => $key.basename( $file ), 303 303 'ACL' => 'public-read', // or private 304 304 ]); … … 307 307 $result = $uploader->upload(); 308 308 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url() ); 309 update_post_meta( $post_id, 'acs_storage_file_dir', $key ); 309 310 return 'uploaded'; 310 311 … … 316 317 $client->putObject([ 317 318 'Bucket' => $bucket_name, 318 'Key' => basename( $file ),319 'Key' => $key.basename( $file ), 319 320 'SourceFile' => $file, 320 321 'ACL' => 'public-read', // or private 321 322 ]); 322 323 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url() ); 324 update_post_meta( $post_id, 'acs_storage_file_dir', $key ); 323 325 324 326 } catch ( MultipartUploadException $e ) { -
arvancloud-object-storage/tags/1.5.0/inc/Storage.php
r3031216 r3118733 154 154 $this->loader->add_action( 'wp_ajax_ar_create_bucket', $plugin_admin, 'handle_create_bucket' ); 155 155 $this->loader->add_filter( 'get_site_icon_url', $plugin_admin, 'get_site_icon_url' , 99, 3 ); 156 156 $this->loader->add_action( 'restrict_manage_posts', $plugin_admin, 'restrict_manage_posts' ); 157 $this->loader->add_action( 'pre_get_posts', $plugin_admin, 'pre_get_media_attachment', 10, 1 ); 158 $this->loader->add_filter( 'manage_upload_columns', $plugin_admin, 'manage_upload_columns' , 10, 1); 159 $this->loader->add_filter( 'manage_media_custom_column', $plugin_admin, 'manage_media_custom_column' , 10, 2); 160 $this->loader->add_action( 'admin_footer', $plugin_admin, 'admin_footer'); 157 161 158 162 -
arvancloud-object-storage/tags/1.5.0/package-lock.json
r3081560 r3118733 509 509 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", 510 510 "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", 511 "deprecated": "Glob versions prior to v9 are no longer supported", 511 512 "dependencies": { 512 513 "fs.realpath": "^1.0.0", … … 822 823 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 823 824 "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 825 "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", 824 826 "dependencies": { 825 827 "once": "^1.3.0", … … 1258 1260 "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", 1259 1261 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", 1262 "deprecated": "This package is no longer supported.", 1260 1263 "dependencies": { 1261 1264 "os-homedir": "^1.0.0", -
arvancloud-object-storage/tags/1.5.0/vendor/composer/installed.php
r3081560 r3118733 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' 734f56bce027af2633c31c300c89b474985fa14e',6 'reference' => 'eb789d0433c60dc858a9cb81c68fa90d840c6f65', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 59 59 'pretty_version' => 'dev-master', 60 60 'version' => 'dev-master', 61 'reference' => ' 734f56bce027af2633c31c300c89b474985fa14e',61 'reference' => 'eb789d0433c60dc858a9cb81c68fa90d840c6f65', 62 62 'type' => 'library', 63 63 'install_path' => __DIR__ . '/../../', -
arvancloud-object-storage/tags/1.5.0/wp-arvancloud-storage.php
r3081560 r3118733 10 10 * Plugin URI: https://www.arvancloud.com/fa/products/cloud-storage 11 11 * Description: Using ArvanCloud Storage Plugin you can offload, back up and upload your WordPress files and databases directly to your ArvanCloud object storage bucket. This easy-to-use plugin allows you to back up, restore and store your files simply and securely to a cost-effective, unlimited cloud storage. No need for expensive hosting services anymore. 12 * Version: 1. 4.112 * Version: 1.5.0 13 13 * Author: ArvanCloud 14 14 * Author URI: https://www.arvancloud.com/en/products/cloud-storage … … 28 28 } 29 29 30 define( 'ACS_VERSION', '1. 4.1' );30 define( 'ACS_VERSION', '1.5.0' ); 31 31 define( 'ACS_NAME', __( 'ArvanCloud Storage', 'arvancloud-object-storage' ) ); 32 32 define( 'ACS_SLUG', 'wp-arvancloud-storage'); -
arvancloud-object-storage/trunk/README.txt
r3081560 r3118733 5 5 Tested up to: 6.2 6 6 Requires PHP: 7.1 7 Stable tag: 1. 4.17 Stable tag: 1.5.0 8 8 License: GPLv3 9 9 License URI: http://www.gnu.org/licenses/gpl-3.0.html … … 48 48 49 49 == Changelog == 50 = 1.5.0 - 2024-07-17 = 51 * feature: Add sub directories to the buckets based on the default WordPress media folder structure 52 * feature: Bucket filter in Media list 53 * feature: New bucket info colmun in Media list 54 50 55 = 1.4.1 - 2024-05-05 = 51 56 * fix: Fix for APIKey expiration or change -
arvancloud-object-storage/trunk/inc/Admin/Admin.php
r3078062 r3118733 115 115 'generate_acl_url' => wp_create_nonce( 'generate_acl_url' ), 116 116 ), 117 'ajax_url' => admin_url( 'admin-ajax.php' ),117 'ajax_url' => admin_url( 'admin-ajax.php' ), 118 118 ) ); 119 119 … … 524 524 if(is_dir($file)) 525 525 return; 526 526 527 $file_size = number_format( filesize( $file ) / 1048576, 2 ); // File size in MB 527 528 $up_dir = wp_upload_dir(); 529 $key = ltrim($up_dir['subdir'],'/').'/'; 528 530 if( $file_size > 400 ) { 529 531 $uploader = new MultipartUploader( $client, $file, [ 530 532 'bucket' => $this->bucket_name, 531 'key' => basename( $file ),533 'key' => $key.basename( $file ), 532 534 'ACL' => 'public-read', // or private 533 535 ]); … … 550 552 } else { 551 553 try { 552 $ client->putObject([554 $result = $client->putObject([ 553 555 'Bucket' => $this->bucket_name, 554 'Key' => basename( $file ),556 'Key' => $key.basename( $file ), 555 557 'SourceFile' => $file, 556 558 'ACL' => 'public-read', // or private … … 566 568 567 569 if( is_numeric( $post_id ) ) { 568 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url() ); 570 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url()); 571 update_post_meta( $post_id, 'acs_storage_file_dir', $key ); 569 572 570 573 if( !$this->acs_settings['keep-local-files'] && !wp_attachment_is_image( $post_id ) ) { … … 587 590 $query_vars = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY); 588 591 589 $result = []; 592 $result = []; 590 593 parse_str($query_vars, $result); 591 594 … … 599 602 if(empty($args['file'])) 600 603 return false; 601 var_dump($args['file']); 604 602 605 $upload_dir = wp_upload_dir(); 603 606 if(!self::check_valid_attachment($upload_dir['basedir'] . '/' . $args['file'])) … … 613 616 $this->upload_media_to_storage( $upload_dir['basedir'] . '/' . $args['file'], true ); 614 617 615 @(S3Singletone::get_instance())->get_s3client()->putObjectTagging([ 618 $key = ltrim($upload_dir['subdir'],'/').'/'; 619 $xxx = @(S3Singletone::get_instance())->get_s3client()->putObjectTagging([ 616 620 'Bucket' => $this->bucket_name, 617 'Key' => $ basename,621 'Key' => $key.$basename, 618 622 'Tagging' => [ 619 623 'TagSet' => [ … … 625 629 ], 626 630 ]); 631 627 632 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url() ); 628 633 update_post_meta( $post_id, 'acs_storage_file_dir', $key ); 629 634 // Check if image has extra sizes 630 635 if( array_key_exists( "sizes", $args ) ) { … … 792 797 793 798 if( !empty( $storage_file_url ) ) { 799 $storage_file_url .= get_post_meta( $attachment_id, 'acs_storage_file_dir', true ); 794 800 $file_name = basename( $url ); 795 801 $url = esc_url( $storage_file_url.$file_name ); … … 1831 1837 1832 1838 if( !empty( $storage_file_url ) ) { 1839 $storage_file_url .= get_post_meta( $site_icon_id, 'acs_storage_file_dir', true ); 1833 1840 $file_name = basename( $url ); 1834 1841 $url = esc_url( $storage_file_url.$file_name ); … … 1923 1930 if(!empty($opt['file_t_size']) and $opt['file_t_size']<$size) 1924 1931 return false; 1932 1925 1933 return true; 1926 1934 } 1935 1936 public function restrict_manage_posts(){ 1937 global $pagenow; 1938 if($pagenow != 'upload.php') 1939 return; 1940 $settings = Helper::get_storage_settings(); 1941 1942 $s3client = S3Singletone::get_instance(); 1943 $out = " 1944 <select name='bucket' class='form-control'> 1945 <option value=''>".__('Select Bucket','arvancloud-object-storage')."</option> 1946 <option value='all'>".__('All Buckets','arvancloud-object-storage')."</option>"; 1947 if(empty($settings['bucket_name'])) 1948 $buckets = $s3client->get_s3client()->listBuckets()['Buckets']; 1949 else{ 1950 $buckets = [['Name' => $settings['bucket_name']]]; 1951 } 1952 if(empty($buckets)) 1953 return; 1954 $select = empty($_GET['bucket'])?'':esc_sql($_GET['bucket']); 1955 foreach($buckets as $bucket){ 1956 $out .= "<option value='{$bucket['Name']}' ".($select==$bucket['Name']?'selected="selected"':'').">{$bucket['Name']}</option>"; 1957 } 1958 1959 echo "$out\n</select>"; 1960 } 1961 1962 function pre_get_media_attachment($query){ 1963 if(empty($_GET['bucket'])) 1964 return; 1965 1966 if (is_admin() && $query->get( 'post_type' ) == 'attachment' ){ 1967 1968 if($_GET['bucket']=='all'){ 1969 $postmeta_query = array(array( 1970 'key' => 'acs_storage_file_url', 1971 'compare' => '=', 1972 ),); 1973 }else{ 1974 $postmeta_query = array(array( 1975 'key' => 'acs_storage_file_url', 1976 'value' => 'https://'.esc_sql($_GET['bucket']).'.', 1977 'compare' => 'LIKE', 1978 ),); 1979 } 1980 1981 $query->set( 'meta_query', $postmeta_query ); 1982 } 1983 } 1984 1985 function manage_upload_columns($columns){ 1986 $columns['bucket_name'] = __( 'Bucket Name', 'arvancloud-object-storage' ); 1987 $columns['bucket_adder'] = __( 'Bucket Address', 'arvancloud-object-storage' ); 1988 return $columns; 1989 } 1990 1991 function manage_media_custom_column($column_name, $attachment_id){ 1992 if('bucket_name' == $column_name){ 1993 if($url = get_post_meta($attachment_id,'acs_storage_file_url',true)){ 1994 preg_match('#https://([^\.]+)#',$url,$match); 1995 echo $match[1]; 1996 } 1997 } 1998 if ( 'bucket_adder' == $column_name ) { 1999 if($url = get_post_meta($attachment_id,'acs_storage_file_url',true)) 2000 echo '<a style="cursor:pointer;" title="Click to copy" onclick="copy_to_clipboard(\''.$url.'\');">'.__('Copy address', 'arvancloud-object-storage').'</a>'; 2001 } 2002 } 2003 2004 function admin_footer(){ 2005 global $pagenow; 2006 if($pagenow != 'upload.php') 2007 return; 2008 ?> 2009 <script> 2010 function copy_to_clipboard(str){ 2011 var aux = document.createElement("input"); 2012 aux.setAttribute("value", str); 2013 document.body.appendChild(aux); 2014 aux.select(); 2015 document.execCommand("copy"); 2016 document.body.removeChild(aux); 2017 } 2018 </script> 2019 <?php 2020 } 1927 2021 } -
arvancloud-object-storage/trunk/inc/Admin/Controllers/BulkUploaderController.php
r2939988 r3118733 294 294 295 295 $client = (S3Singletone::get_instance())->get_s3client(); 296 297 296 $up_dir = wp_upload_dir(); 297 $key = str_replace([$up_dir,basename( $file )],'',$file); 298 298 299 299 if( $file_size > 400 ) { 300 300 $uploader = new MultipartUploader( $client, $file, [ 301 301 'bucket' => $bucket_name, 302 'key' => basename( $file ),302 'key' => $key.basename( $file ), 303 303 'ACL' => 'public-read', // or private 304 304 ]); … … 307 307 $result = $uploader->upload(); 308 308 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url() ); 309 update_post_meta( $post_id, 'acs_storage_file_dir', $key ); 309 310 return 'uploaded'; 310 311 … … 316 317 $client->putObject([ 317 318 'Bucket' => $bucket_name, 318 'Key' => basename( $file ),319 'Key' => $key.basename( $file ), 319 320 'SourceFile' => $file, 320 321 'ACL' => 'public-read', // or private 321 322 ]); 322 323 update_post_meta( $post_id, 'acs_storage_file_url', Helper::get_storage_url() ); 324 update_post_meta( $post_id, 'acs_storage_file_dir', $key ); 323 325 324 326 } catch ( MultipartUploadException $e ) { -
arvancloud-object-storage/trunk/inc/Storage.php
r3031216 r3118733 154 154 $this->loader->add_action( 'wp_ajax_ar_create_bucket', $plugin_admin, 'handle_create_bucket' ); 155 155 $this->loader->add_filter( 'get_site_icon_url', $plugin_admin, 'get_site_icon_url' , 99, 3 ); 156 156 $this->loader->add_action( 'restrict_manage_posts', $plugin_admin, 'restrict_manage_posts' ); 157 $this->loader->add_action( 'pre_get_posts', $plugin_admin, 'pre_get_media_attachment', 10, 1 ); 158 $this->loader->add_filter( 'manage_upload_columns', $plugin_admin, 'manage_upload_columns' , 10, 1); 159 $this->loader->add_filter( 'manage_media_custom_column', $plugin_admin, 'manage_media_custom_column' , 10, 2); 160 $this->loader->add_action( 'admin_footer', $plugin_admin, 'admin_footer'); 157 161 158 162 -
arvancloud-object-storage/trunk/package-lock.json
r3081560 r3118733 509 509 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", 510 510 "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", 511 "deprecated": "Glob versions prior to v9 are no longer supported", 511 512 "dependencies": { 512 513 "fs.realpath": "^1.0.0", … … 822 823 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 823 824 "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 825 "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", 824 826 "dependencies": { 825 827 "once": "^1.3.0", … … 1258 1260 "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", 1259 1261 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", 1262 "deprecated": "This package is no longer supported.", 1260 1263 "dependencies": { 1261 1264 "os-homedir": "^1.0.0", -
arvancloud-object-storage/trunk/vendor/composer/installed.php
r3081560 r3118733 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' 734f56bce027af2633c31c300c89b474985fa14e',6 'reference' => 'eb789d0433c60dc858a9cb81c68fa90d840c6f65', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 59 59 'pretty_version' => 'dev-master', 60 60 'version' => 'dev-master', 61 'reference' => ' 734f56bce027af2633c31c300c89b474985fa14e',61 'reference' => 'eb789d0433c60dc858a9cb81c68fa90d840c6f65', 62 62 'type' => 'library', 63 63 'install_path' => __DIR__ . '/../../', -
arvancloud-object-storage/trunk/wp-arvancloud-storage.php
r3081560 r3118733 10 10 * Plugin URI: https://www.arvancloud.com/fa/products/cloud-storage 11 11 * Description: Using ArvanCloud Storage Plugin you can offload, back up and upload your WordPress files and databases directly to your ArvanCloud object storage bucket. This easy-to-use plugin allows you to back up, restore and store your files simply and securely to a cost-effective, unlimited cloud storage. No need for expensive hosting services anymore. 12 * Version: 1. 4.112 * Version: 1.5.0 13 13 * Author: ArvanCloud 14 14 * Author URI: https://www.arvancloud.com/en/products/cloud-storage … … 28 28 } 29 29 30 define( 'ACS_VERSION', '1. 4.1' );30 define( 'ACS_VERSION', '1.5.0' ); 31 31 define( 'ACS_NAME', __( 'ArvanCloud Storage', 'arvancloud-object-storage' ) ); 32 32 define( 'ACS_SLUG', 'wp-arvancloud-storage');
Note: See TracChangeset
for help on using the changeset viewer.