Skip to content

Commit 18c4cdd

Browse files
committed
* Fix for Bunny CDN region list
1 parent b2bb4ca commit 18c4cdd

5 files changed

Lines changed: 27 additions & 275 deletions

File tree

classes/Tools/Storage/Driver/BunnyCDN/BunnyCDNClient.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public function __construct($apiKey, $storageZone, $region, $pullZone) {
2424

2525
$this->apiKey = $apiKey;
2626
$this->storageZone = $storageZone;
27-
$this->region = $region;
27+
$this->region = empty($region) ? '' : "{$region}.";
2828
$this->pullZone = $pullZone;
2929

3030
$this->client = new Client();
@@ -33,7 +33,7 @@ public function __construct($apiKey, $storageZone, $region, $pullZone) {
3333
public function upload($sourceFile, $destPath) {
3434
$res = fopen($sourceFile, 'r');
3535

36-
$res = $this->client->put("https://{$this->region}.storage.bunnycdn.com/{$this->storageZone}/{$destPath}", [
36+
$res = $this->client->put("https://{$this->region}storage.bunnycdn.com/{$this->storageZone}/{$destPath}", [
3737
RequestOptions::HEADERS => [
3838
'Content-Type' => 'application/octet-stream',
3939
'AccessKey' => $this->apiKey
@@ -50,7 +50,7 @@ public function mkdir($path) {
5050
return false;
5151
}
5252

53-
$ftpId = ftp_connect("{$this->region}.storage.bunnycdn.com");
53+
$ftpId = ftp_connect("{$this->region}storage.bunnycdn.com");
5454
$login = ftp_login($ftpId, $this->storageZone, $this->apiKey);
5555
if (!$login) {
5656
throw new StorageException("Invalid settings");
@@ -64,7 +64,7 @@ public function mkdir($path) {
6464
}
6565

6666
public function listFiles($path) {
67-
$res = $this->client->get("https://{$this->region}.storage.bunnycdn.com/{$this->storageZone}/{$path}/", [
67+
$res = $this->client->get("https://{$this->region}storage.bunnycdn.com/{$this->storageZone}/{$path}/", [
6868
RequestOptions::HEADERS => [
6969
'AccessKey' => $this->apiKey
7070
],
@@ -95,7 +95,7 @@ public function listFiles($path) {
9595

9696
public function deleteFile($file) {
9797

98-
$res = $this->client->delete("https://{$this->region}.storage.bunnycdn.com/{$this->storageZone}/{$file}", [
98+
$res = $this->client->delete("https://{$this->region}storage.bunnycdn.com/{$this->storageZone}/{$file}", [
9999
RequestOptions::HEADERS => [
100100
'AccessKey' => $this->apiKey
101101
],
@@ -110,7 +110,7 @@ public function exists($file) {
110110
return false;
111111
}
112112

113-
$ftpId = ftp_connect("{$this->region}.storage.bunnycdn.com");
113+
$ftpId = ftp_connect("{$this->region}storage.bunnycdn.com");
114114
$login = ftp_login($ftpId, $this->storageZone, $this->apiKey);
115115
if (!$login) {
116116
throw new StorageException("Invalid settings");

classes/Tools/Storage/Driver/BunnyCDN/BunnyCDNStorage.php

Lines changed: 9 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
namespace MediaCloud\Plugin\Tools\Storage\Driver\BunnyCDN;
44

5-
use MediaCloud\Plugin\Tools\Storage\FileInfo;
65
use MediaCloud\Plugin\Tools\Storage\InvalidStorageSettingsException;
7-
use MediaCloud\Plugin\Tools\Storage\StorageException;
86
use MediaCloud\Plugin\Tools\Storage\StorageInterface;
97
use MediaCloud\Plugin\Tools\Storage\StorageToolSettings;
108
use MediaCloud\Plugin\Utilities\Environment;
@@ -14,7 +12,7 @@
1412
use MediaCloud\Plugin\Wizard\ConfiguresWizard;
1513
use MediaCloud\Plugin\Wizard\StorageWizardTrait;
1614
use MediaCloud\Plugin\Wizard\WizardBuilder;
17-
use MediaCloud\Vendor\FasterImage\FasterImage;
15+
use function MediaCloud\Plugin\Utilities\anyEmpty;
1816
use function MediaCloud\Plugin\Utilities\anyNull;
1917
use function MediaCloud\Plugin\Utilities\arrayPath;
2018

@@ -121,7 +119,7 @@ public function signedURLExpirationForType($type = null) {
121119
* @inheritDoc
122120
*/
123121
public function enabled() {
124-
if(!($this->settings->apiKey && $this->settings->region && $this->settings->pullZone && $this->settings->storageZone)) {
122+
if(anyEmpty($this->settings->apiKey && $this->settings->pullZone && $this->settings->storageZone)) {
125123
if (current_user_can('manage_options')) {
126124
$adminUrl = admin_url('admin.php?page=media-cloud-settings&tab=storage');
127125
NoticeManager::instance()->displayAdminNotice('error', "To start using Cloud Storage, you will need to <a href='$adminUrl'>supply your Bunny CDN credentials.</a>.", true, 'ilab-cloud-storage-setup-warning', 'forever');
@@ -417,136 +415,11 @@ public static function configureWizard($builder = null) {
417415
->textField('mcloud-storage-bunnycdn-storage-zone', 'Storage Zone', '', null)
418416
->textField('mcloud-storage-bunnycdn-pull-zone', 'Pull Zone URL', '', null)
419417
->selectField('mcloud-storage-bunnycdn-region', 'Region', '', null, [
420-
'jo' => 'AF: Amman, JO',
421-
'eg2' => 'AF: Cairo 2, EG',
422-
'eg' => 'AF: Cairo, EG',
423-
'ct' => 'AF: Cape Town, SA',
424-
'jh' => 'AF: Johannesburg, ZA',
425-
'ng' => 'AF: Lagos, NG',
426-
'ao' => 'AF: Luanda, AO',
427-
'ke' => 'AF: Nairobi, KE',
428-
'tn' => 'AF: Tunis, TN',
429-
'pk' => 'ASIA: Karachi, PK',
430-
'tw' => 'ASIA: Taipei, TW',
431-
'kz' => 'Asia: Almaty, KZ',
432-
'az' => 'Asia: Baku, AZ',
433-
'in' => 'Asia: Bangalore, IN',
434-
'th' => 'Asia: Bangkok, TH',
435-
'kg' => 'Asia: Bishkek, KG',
436-
'cen' => 'Asia: Chennai, IN',
437-
'bd' => 'Asia: Dhaka, BD',
438-
'vn' => 'Asia: Ho Chi Minh, VN',
439-
'hk' => 'Asia: Hong Kong, HK',
440-
'tr' => 'Asia: Istanbul, TR',
441-
'id' => 'Asia: Jakarta, ID',
442-
'np' => 'Asia: Kathmandu, NP',
443-
'ccu' => 'Asia: Kolkata, IN',
444-
'my' => 'Asia: Kuala Lumpur, MY',
445-
'ph' => 'Asia: Manila, PH',
446-
'mu' => 'Asia: Mumbai, IN',
447-
'nd' => 'Asia: New Delhi, IN',
448-
'cy' => 'Asia: Nicosia, CY',
449-
'pp' => 'Asia: Phnom Penh, KH',
450-
'kr' => 'Asia: Seoul, KR',
451-
'sg2' => 'Asia: Singapore 2, SG',
452-
'sg' => 'Asia: Singapore, SG',
453-
'geo' => 'Asia: Tbilisi, GE',
454-
'isr' => 'Asia: Tel Aviv, IL',
455-
'jp' => 'Asia: Tokyo, JP',
456-
'mg' => 'Asia: Ulaanbaatar, MN',
457-
'rgn' => 'Asia: Yangon, MM',
458-
'am' => 'Asia: Yerevan, AM',
459-
'ams' => 'EU: Amsterdam, NL',
460-
'gr' => 'EU: Athens, GR',
461-
'rs' => 'EU: Belgrade, RS',
462-
'sk' => 'EU: Bratislava, SK',
463-
'bu' => 'EU: Bucharest, RO',
464-
'hu' => 'EU: Budapest, HU',
465-
'md' => 'EU: Chisinau, MD',
466-
'dk' => 'EU: Copenhagen, DK',
467-
'ie' => 'EU: Dublin, IE',
468-
'dd' => 'EU: Dusseldorf, DE',
469-
'de2' => 'EU: Frankfurt 2, DE2',
470-
'de' => 'EU: Frankfurt, DE',
471-
'fi' => 'EU: Helsinki, FI',
472-
'is' => 'EU: Keflavik, IS',
473-
'kh' => 'EU: Khabarovsk, RU',
474-
'ky' => 'EU: Krasnoyarsk, RU',
475-
'ua' => 'EU: Kyiv, UA',
476-
'pt' => 'EU: Lisbon, PT',
477-
'lj' => 'EU: Ljubljana, SI',
478-
'uk' => 'EU: London, UK',
479-
'lu' => 'EU: Luxembourg, LU',
480-
'es' => 'EU: Madrid, ES',
481-
'ms' => 'EU: Marseille, FR',
482-
'it' => 'EU: Milan, IT',
483-
'ru' => 'EU: Moscow, RU',
484-
'ba' => 'EU: Novi Travnik, BA',
485-
'no' => 'EU: Oslo, NO',
486-
'fr' => 'EU: Paris, FR',
487-
'cz' => 'EU: Prague, CZ',
488-
'lv' => 'EU: Riga, LV',
489-
'bg' => 'EU: Sofia, BG',
490-
'se' => 'EU: Stockholm, SE',
491-
'at' => 'EU: Vienna, AT',
492-
'at2' => 'EU: Vienna, AT2',
493-
'lt' => 'EU: Vilnius, LT',
494-
'pl' => 'EU: Warsaw, PL',
495-
'hr' => 'EU: Zagreb, HR',
496-
'ch' => 'EU: Zurich, CH',
497-
'bs' => 'LATAM: Brasilia, BR',
498-
'fo' => 'LATAM: Fortaleza, BR',
499-
'gt' => 'LATAM: Guatemala, GT',
500-
'mx' => 'LATAM: Mexico City, MX',
501-
'pa' => 'LATAM: Porto Alegre, BR',
502-
'pr' => 'LATAM: San Juan, PR',
503-
'cr' => 'LATAM: San Pedro, CR',
504-
'bol' => 'LATAM: Sucre, BO',
505-
'iq2' => 'ME: Baghdad 2, IQ',
506-
'iq' => 'ME: Baghdad, IQ',
507-
'bhr' => 'ME: Bahrain, BH',
508-
'ae' => 'ME: Dubai, AE',
509-
'fu' => 'ME: Fujairah, UAE',
510-
'ri' => 'ME: Riyadh, SA',
511-
'hi' => 'NA: Honolulu, HI',
512-
'asb' => 'NA: Ashburn, VA',
513-
'ga' => 'NA: Atlanta, GA',
514-
'bo' => 'NA: Boston, MA',
515-
'clt' => 'NA: Charlotte, NC',
516-
'il' => 'NA: Chicago, IL',
517-
'tx' => 'NA: Dallas, TX',
518-
'den' => 'NA: Denver, CO',
519-
'hou' => 'NA: Houston, TX',
520-
'kc' => 'NA: Kansas City, MO',
521-
'la' => 'NA: Los Angeles, CA',
522-
'mi' => 'NA: Miami, FL',
523-
'msp' => 'NA: Minneapolis, MN',
524-
'mn' => 'NA: Montreal, CA',
525-
'ny' => 'NA: New York City, NY',
526-
'og' => 'NA: Ogden, UT',
527-
'phx' => 'NA: Phoenix, AZ',
528-
'pb' => 'NA: Pittsburgh, PA',
529-
'sil' => 'NA: San Jose, CA',
530-
'wa' => 'NA: Seattle, WA',
531-
'ca' => 'NA: Toronto, CA',
532-
'va' => 'NA: Vancouver, CA',
533-
'adl' => 'OC: Adelaide, AU',
534-
'auc' => 'OC: Auckland, NZ',
535-
'brb' => 'OC: Brisbane, AU',
536-
'gu' => 'OC: Hagatna: GU',
537-
'mel' => 'OC: Melbourne, AU',
538-
'per' => 'OC: Perth, AU',
539-
'syd' => 'OC: Sydney, SYD',
540-
'co' => 'SA: Bogota, SA',
541-
'ar' => 'SA: Buenos Aires, AR',
542-
'cwb' => 'SA: Curitiba, BR',
543-
'lap' => 'SA: La Paz, BO',
544-
'pe' => 'SA: Lima, PE',
545-
'ec' => 'SA: Quito, EC',
546-
'rj' => 'SA: Rio de Janeiro, BR',
547-
'ssa' => 'SA: Salvador, BR',
548-
'cl' => 'SA: Santiago, CL',
549-
'br' => 'SA: Sao Paulo, BR',
418+
'' => 'Falkenstein: storage.bunnycdn.com',
419+
'ny' => 'New York: ny.storage.bunnycdn.com',
420+
'la' => 'Los Angeles: la.storage.bunnycdn.com',
421+
'sg' => 'Singapore: sg.storage.bunnycdn.com',
422+
'syd' => 'Sydney: syd.storage.bunnycdn.com',
550423
])
551424
->endStep()
552425
->testStep('wizard.cloud-storage.providers.bunnycdn.test', 'Test Settings', 'Perform tests to insure that your cloud storage provider is configured correctly.', false);
@@ -584,9 +457,9 @@ public static function processWizardSettings() {
584457
$apiKey = arrayPath($_POST, $apiKeyName, null);
585458
$storageZone = arrayPath($_POST, $storageZoneName, null);
586459
$pullZone = arrayPath($_POST, $pullZoneName, null);
587-
$region = arrayPath($_POST, $regionName, null);
460+
$region = arrayPath($_POST, $regionName, '');
588461

589-
if (anyNull($provider, $apiKey, $storageZone, $pullZone, $region)) {
462+
if (anyNull($provider, $apiKey, $storageZone, $pullZone)) {
590463
wp_send_json(['status' => 'error', 'message' => 'Missing required fields'], 200);
591464
}
592465

config/storage/bunnycdn.config.php

Lines changed: 5 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -41,136 +41,11 @@
4141
"display-order" => 11,
4242
"type" => "select",
4343
"options" => [
44-
'jo' => 'AF: Amman, JO',
45-
'eg2' => 'AF: Cairo 2, EG',
46-
'eg' => 'AF: Cairo, EG',
47-
'ct' => 'AF: Cape Town, SA',
48-
'jh' => 'AF: Johannesburg, ZA',
49-
'ng' => 'AF: Lagos, NG',
50-
'ao' => 'AF: Luanda, AO',
51-
'ke' => 'AF: Nairobi, KE',
52-
'tn' => 'AF: Tunis, TN',
53-
'pk' => 'ASIA: Karachi, PK',
54-
'tw' => 'ASIA: Taipei, TW',
55-
'kz' => 'Asia: Almaty, KZ',
56-
'az' => 'Asia: Baku, AZ',
57-
'in' => 'Asia: Bangalore, IN',
58-
'th' => 'Asia: Bangkok, TH',
59-
'kg' => 'Asia: Bishkek, KG',
60-
'cen' => 'Asia: Chennai, IN',
61-
'bd' => 'Asia: Dhaka, BD',
62-
'vn' => 'Asia: Ho Chi Minh, VN',
63-
'hk' => 'Asia: Hong Kong, HK',
64-
'tr' => 'Asia: Istanbul, TR',
65-
'id' => 'Asia: Jakarta, ID',
66-
'np' => 'Asia: Kathmandu, NP',
67-
'ccu' => 'Asia: Kolkata, IN',
68-
'my' => 'Asia: Kuala Lumpur, MY',
69-
'ph' => 'Asia: Manila, PH',
70-
'mu' => 'Asia: Mumbai, IN',
71-
'nd' => 'Asia: New Delhi, IN',
72-
'cy' => 'Asia: Nicosia, CY',
73-
'pp' => 'Asia: Phnom Penh, KH',
74-
'kr' => 'Asia: Seoul, KR',
75-
'sg2' => 'Asia: Singapore 2, SG',
76-
'sg' => 'Asia: Singapore, SG',
77-
'geo' => 'Asia: Tbilisi, GE',
78-
'isr' => 'Asia: Tel Aviv, IL',
79-
'jp' => 'Asia: Tokyo, JP',
80-
'mg' => 'Asia: Ulaanbaatar, MN',
81-
'rgn' => 'Asia: Yangon, MM',
82-
'am' => 'Asia: Yerevan, AM',
83-
'ams' => 'EU: Amsterdam, NL',
84-
'gr' => 'EU: Athens, GR',
85-
'rs' => 'EU: Belgrade, RS',
86-
'sk' => 'EU: Bratislava, SK',
87-
'bu' => 'EU: Bucharest, RO',
88-
'hu' => 'EU: Budapest, HU',
89-
'md' => 'EU: Chisinau, MD',
90-
'dk' => 'EU: Copenhagen, DK',
91-
'ie' => 'EU: Dublin, IE',
92-
'dd' => 'EU: Dusseldorf, DE',
93-
'de2' => 'EU: Frankfurt 2, DE2',
94-
'de' => 'EU: Frankfurt, DE',
95-
'fi' => 'EU: Helsinki, FI',
96-
'is' => 'EU: Keflavik, IS',
97-
'kh' => 'EU: Khabarovsk, RU',
98-
'ky' => 'EU: Krasnoyarsk, RU',
99-
'ua' => 'EU: Kyiv, UA',
100-
'pt' => 'EU: Lisbon, PT',
101-
'lj' => 'EU: Ljubljana, SI',
102-
'uk' => 'EU: London, UK',
103-
'lu' => 'EU: Luxembourg, LU',
104-
'es' => 'EU: Madrid, ES',
105-
'ms' => 'EU: Marseille, FR',
106-
'it' => 'EU: Milan, IT',
107-
'ru' => 'EU: Moscow, RU',
108-
'ba' => 'EU: Novi Travnik, BA',
109-
'no' => 'EU: Oslo, NO',
110-
'fr' => 'EU: Paris, FR',
111-
'cz' => 'EU: Prague, CZ',
112-
'lv' => 'EU: Riga, LV',
113-
'bg' => 'EU: Sofia, BG',
114-
'se' => 'EU: Stockholm, SE',
115-
'at' => 'EU: Vienna, AT',
116-
'at2' => 'EU: Vienna, AT2',
117-
'lt' => 'EU: Vilnius, LT',
118-
'pl' => 'EU: Warsaw, PL',
119-
'hr' => 'EU: Zagreb, HR',
120-
'ch' => 'EU: Zurich, CH',
121-
'bs' => 'LATAM: Brasilia, BR',
122-
'fo' => 'LATAM: Fortaleza, BR',
123-
'gt' => 'LATAM: Guatemala, GT',
124-
'mx' => 'LATAM: Mexico City, MX',
125-
'pa' => 'LATAM: Porto Alegre, BR',
126-
'pr' => 'LATAM: San Juan, PR',
127-
'cr' => 'LATAM: San Pedro, CR',
128-
'bol' => 'LATAM: Sucre, BO',
129-
'iq2' => 'ME: Baghdad 2, IQ',
130-
'iq' => 'ME: Baghdad, IQ',
131-
'bhr' => 'ME: Bahrain, BH',
132-
'ae' => 'ME: Dubai, AE',
133-
'fu' => 'ME: Fujairah, UAE',
134-
'ri' => 'ME: Riyadh, SA',
135-
'hi' => 'NA: Honolulu, HI',
136-
'asb' => 'NA: Ashburn, VA',
137-
'ga' => 'NA: Atlanta, GA',
138-
'bo' => 'NA: Boston, MA',
139-
'clt' => 'NA: Charlotte, NC',
140-
'il' => 'NA: Chicago, IL',
141-
'tx' => 'NA: Dallas, TX',
142-
'den' => 'NA: Denver, CO',
143-
'hou' => 'NA: Houston, TX',
144-
'kc' => 'NA: Kansas City, MO',
145-
'la' => 'NA: Los Angeles, CA',
146-
'mi' => 'NA: Miami, FL',
147-
'msp' => 'NA: Minneapolis, MN',
148-
'mn' => 'NA: Montreal, CA',
149-
'ny' => 'NA: New York City, NY',
150-
'og' => 'NA: Ogden, UT',
151-
'phx' => 'NA: Phoenix, AZ',
152-
'pb' => 'NA: Pittsburgh, PA',
153-
'sil' => 'NA: San Jose, CA',
154-
'wa' => 'NA: Seattle, WA',
155-
'ca' => 'NA: Toronto, CA',
156-
'va' => 'NA: Vancouver, CA',
157-
'adl' => 'OC: Adelaide, AU',
158-
'auc' => 'OC: Auckland, NZ',
159-
'brb' => 'OC: Brisbane, AU',
160-
'gu' => 'OC: Hagatna: GU',
161-
'mel' => 'OC: Melbourne, AU',
162-
'per' => 'OC: Perth, AU',
163-
'syd' => 'OC: Sydney, SYD',
164-
'co' => 'SA: Bogota, SA',
165-
'ar' => 'SA: Buenos Aires, AR',
166-
'cwb' => 'SA: Curitiba, BR',
167-
'lap' => 'SA: La Paz, BO',
168-
'pe' => 'SA: Lima, PE',
169-
'ec' => 'SA: Quito, EC',
170-
'rj' => 'SA: Rio de Janeiro, BR',
171-
'ssa' => 'SA: Salvador, BR',
172-
'cl' => 'SA: Santiago, CL',
173-
'br' => 'SA: Sao Paulo, BR',
44+
'' => 'Falkenstein: storage.bunnycdn.com',
45+
'ny' => 'New York: ny.storage.bunnycdn.com',
46+
'la' => 'Los Angeles: la.storage.bunnycdn.com',
47+
'sg' => 'Singapore: sg.storage.bunnycdn.com',
48+
'syd' => 'Sydney: syd.storage.bunnycdn.com',
17449
]
17550
],
17651
]

ilab-media-tools.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Plugin URI: https://github.com/interfacelab/ilab-media-tools
66
Description: Automatically upload media to Amazon S3 and integrate with Imgix, a real-time image processing CDN. Boosts site performance and simplifies workflows.
77
Author: interfacelab
8-
Version: 4.6.1
8+
Version: 4.6.2
99
Requires PHP: 7.4
1010
Author URI: http://interfacelab.io
1111
*/
@@ -117,7 +117,7 @@
117117
define( 'WP_FS__ENABLE_GARBAGE_COLLECTOR', false );
118118
}
119119
// Version Defines
120-
define( 'MEDIA_CLOUD_VERSION', '4.6.1' );
120+
define( 'MEDIA_CLOUD_VERSION', '4.6.2' );
121121
define( 'MEDIA_CLOUD_INFO_VERSION', '4.0.2' );
122122
define( 'MCLOUD_IS_BETA', false );
123123
// Debugging

0 commit comments

Comments
 (0)