Selasa, 14 Januari 2020
6 Balasan
2,8K Kunjungan
Hai,
apakah ini kompatibel dengan ruang digital dan suka S3 lainnya?
Dan apakah itu kompatibel dengan pembangun UX datar,
terima kasih!
apakah ini kompatibel dengan ruang digital dan suka S3 lainnya?
Dan apakah itu kompatibel dengan pembangun UX datar,
terima kasih!
SEBUAH
5 tahun yang lalu
·
#13382 Hai,
Terima kasih telah menghubungi kami di sini tentang ekstensi ini.
Kami belum mendukung Samudra Digital, Anda dapat menggunakan Amazon S3 saat ini: Untuk lebih jelasnya:
https://www.joomunited.com/wordpress-products/wp-media-folder/amazon-s3-integration-with-wordpress-media-library
Ya, itu kompatibel dengan hampir pembangun halaman.
Semoga bisa membantu!
Bersulang,
Terima kasih telah menghubungi kami di sini tentang ekstensi ini.
Apakah kompatibel dengan ruang digital dan suka S3 lainnya?
Kami belum mendukung Samudra Digital, Anda dapat menggunakan Amazon S3 saat ini: Untuk lebih jelasnya:
https://www.joomunited.com/wordpress-products/wp-media-folder/amazon-s3-integration-with-wordpress-media-library
Dan apakah itu kompatibel dengan pembangun UX datar
Ya, itu kompatibel dengan hampir pembangun halaman.
Semoga bisa membantu!
Bersulang,
W
5 tahun yang lalu
·
#13385Hai,
terima kasih atas jawaban Anda.
Seperti halnya S3 kompatibel mungkin bekerja dengan Do Credensials and Server Address, bukan?
Apakah Anda mencobanya?
terima kasih atas jawaban Anda.
Seperti halnya S3 kompatibel mungkin bekerja dengan Do Credensials and Server Address, bukan?

SEBUAH
5 tahun yang lalu
·
#13386 Hai,
Terima kasih telah menghubungi saya kembali dengan informasi lebih lanjut.
Kami belum diuji dengan DO dan saya pikir itu tidak mungkin.
Bersulang,
Terima kasih telah menghubungi saya kembali dengan informasi lebih lanjut.
Seperti halnya S3 kompatibel mungkin bekerja dengan Do Credensials and Server Address, bukan?Apakah Anda mencobanya?
Kami belum diuji dengan DO dan saya pikir itu tidak mungkin.
Bersulang,
Anda dapat menggunakannya dengan Digitalocean, ada peretasan sederhana untuk membuatnya berfungsi:
Karena saya baru saja melakukannya untuk klien, saya akan merinci peretasan, dan kemudian menjelaskan bagaimana Anda akan membuatnya bekerja secara terpisah.
--
Sementara kami belum mendapatkannya 100% bekerja, kami telah membuat kemajuan yang signifikan:
1. Hack
Ruang Digitalocean dibangun di sekitar API S3, dan Penggunaan Perpustakaan PHP "AWS SDK" Amazon (yang merupakan bundleD dengan plugin).
Dalam menemukan ini, saya pikir sejak itu Digitalocean mempromosikan menggunakan SDK dengan produknya sendiri, meretas beberapa kode untuk membuatnya bekerja tidak akan terlalu sulit.
Untuk melakukan ini, saya menemukan bahwa cara bekerja plugin dengan dua file kelas (untuk setiap layanan) -
File "Admin" adalah tempat fungsionalitas front-end berada; Yang lainnya adalah untuk berinteraksi dengan S3 SDK. Singkatnya, file "Admin" dimuat melalui AJAX atau front-end WP, dan fungsinya memanggil file S3 (menggunakan kredensial tersimpan), yang memungkinkannya melakukan tindakan (seperti sinkronisasi) ke ember S3 Anda. Ini bekerja dengan sangat baik, tetapi ada satu masalah besar dalam membuatnya bekerja dengan Digitalocean:
Digitalocean adalah BUKAN AGNOSTIK Wilayah. Ini berarti bahwa setiap permintaan tersingkir ke wilayah tertentu, sementara S3 tidak. Ini bukan masalah dalam dirinya sendiri (peretasan kami akan tetap berfungsi), tetapi jika Anda ingin mencapai fungsionalitas "penuh" (berbagai wilayah/ember), Anda harus memastikan Anda harus memohon kelas "non admin" dengan pengaturan kredensial khusus setiap kali.
-
Hack terdiri dari yang berikut:
a) Ubah file "admin" untuk menggunakan "titik akhir" untuk wilayah ruang digital Anda
b) Pastikan wilayah 'US-East-1' diatur setiap saat
c) Ubah "URL Lampiran" untuk masing -masing lampiran yang disinkronkan di Perpustakaan Media Anda
-
Langkah pertama adalah mengubah opsi "default" di file "admin":
Mulai dari baris 34 dari
Dalam kasus di atas, "wilayah" kami adalah AMS3. Ini mungkin berbeda tergantung pada lokasi di mana ruang Anda disimpan.
Mengubah kode ini tidak benar -benar melakukan banyak hal, tetapi memastikan bahwa default yang sama digunakan setiap kali (dan bahwa "titik akhir" ditetapkan, yang merupakan dasar dari seluruh peretasan).
-
Setelah melakukan ini, kami kemudian beralih ke file kelas lainnya
Ini, seperti yang disebutkan, dipanggil setiap kali kelas "Admin" ingin berkomunikasi dengan S3/Do.
Apa yang akan kita lakukan di sini adalah "spoof" titik akhir, yang berarti bahwa kita mengkode kerasnya. Ini akan mengubah URL AWS SDK mengirimkan permintaan ke, yang berarti bahwa kredensial Digitalocean kami harus diterima. Untuk melakukannya, cukup tambahkan dua baris berikut di baris 73 & 74: masing -masing:
#73 $ args ['region'] = 'us-east-1';
#74 $ args ['endpoint'] = 'https://ams3.digitaloceanspaces.com';
Di atas akan memaksa "titik akhir" untuk diubah setiap kali Anda menggunakan fungsi "admin" salah satu.
Ini bekerja dengan mengambil detail di atas dan menggabungkannya dengan kredensial S3 yang tersimpan (dalam kasus Anda, DigitalOcean API Key), yang memungkinkan skrip untuk berkomunikasi dengan DO. Saya menjelaskan di atas bahwa ini terbatas karena itu berarti Anda hanya dapat berkomunikasi dengan satu wilayah DO (sesuatu yang akan saya bahas sepenuhnya dalam satu menit).
-
Setelah melakukan ini, hal terakhir yang perlu kita lakukan adalah mengubah "URL" untuk masing -masing lampiran yang disinkronkan dengan DO.
Ini dilakukan di dalam kelas "Admin", dalam fungsi "wpgetattachmentUrl" (#2048) dan "addMeTainfo" (#1121):
Saya tidak yakin dari fungsi mana yang sebenarnya menyediakan fungsionalitas (saya percaya ini #2048), tetapi saya tetap mengubah keduanya.
Pada akhirnya, yang Anda lakukan hanyalah mengubah tautan AWS ke yang digitalocean. Yang bekerja dengan baik untuk peretasan ini adalah sebagai berikut:
#2057 return 'https: //'. $ info ['bucket']. '.Ams3.digitaloceanspaces.com/'. str_replace ('', '%20', $ infos ['key']);
Ini mengubah "tautan" yang dimiliki media WP ke ruang digital, yang seharusnya menunjukkannya di backend dan frontend situs Anda.
--
Saya akan merinci perbaikan yang lebih luas di posting lain.
Karena saya baru saja melakukannya untuk klien, saya akan merinci peretasan, dan kemudian menjelaskan bagaimana Anda akan membuatnya bekerja secara terpisah.
--
Sementara kami belum mendapatkannya 100% bekerja, kami telah membuat kemajuan yang signifikan:
1. Hack
Ruang Digitalocean dibangun di sekitar API S3, dan Penggunaan Perpustakaan PHP "AWS SDK" Amazon (yang merupakan bundleD dengan plugin).
Dalam menemukan ini, saya pikir sejak itu Digitalocean mempromosikan menggunakan SDK dengan produknya sendiri, meretas beberapa kode untuk membuatnya bekerja tidak akan terlalu sulit.
Untuk melakukan ini, saya menemukan bahwa cara bekerja plugin dengan dua file kelas (untuk setiap layanan) -
./class/wpmfAddonAws3Admin.php
&./class/wpmfAws3.php
(untuk S3).File "Admin" adalah tempat fungsionalitas front-end berada; Yang lainnya adalah untuk berinteraksi dengan S3 SDK. Singkatnya, file "Admin" dimuat melalui AJAX atau front-end WP, dan fungsinya memanggil file S3 (menggunakan kredensial tersimpan), yang memungkinkannya melakukan tindakan (seperti sinkronisasi) ke ember S3 Anda. Ini bekerja dengan sangat baik, tetapi ada satu masalah besar dalam membuatnya bekerja dengan Digitalocean:
Digitalocean adalah BUKAN AGNOSTIK Wilayah. Ini berarti bahwa setiap permintaan tersingkir ke wilayah tertentu, sementara S3 tidak. Ini bukan masalah dalam dirinya sendiri (peretasan kami akan tetap berfungsi), tetapi jika Anda ingin mencapai fungsionalitas "penuh" (berbagai wilayah/ember), Anda harus memastikan Anda harus memohon kelas "non admin" dengan pengaturan kredensial khusus setiap kali.
-
Hack terdiri dari yang berikut:
a) Ubah file "admin" untuk menggunakan "titik akhir" untuk wilayah ruang digital Anda
b) Pastikan wilayah 'US-East-1' diatur setiap saat
c) Ubah "URL Lampiran" untuk masing -masing lampiran yang disinkronkan di Perpustakaan Media Anda
-
Langkah pertama adalah mengubah opsi "default" di file "admin":
Mulai dari baris 34 dari
./class/wpmfAddonAws3Admin.php
, Anda akan melihat bahwa satu set pengaturan default dibuat untuk kelas lain. Anda perlu melakukan hal berikut:- Ubah "wilayah" menjadi 'us-east-1'
- Tambahkan garis
"endpoint" => "https://[[REGION]].digitaloceanspaces.com"
Dalam kasus di atas, "wilayah" kami adalah AMS3. Ini mungkin berbeda tergantung pada lokasi di mana ruang Anda disimpan.
Mengubah kode ini tidak benar -benar melakukan banyak hal, tetapi memastikan bahwa default yang sama digunakan setiap kali (dan bahwa "titik akhir" ditetapkan, yang merupakan dasar dari seluruh peretasan).
-
Setelah melakukan ini, kami kemudian beralih ke file kelas lainnya
./class/wpmfAws3.php
:Ini, seperti yang disebutkan, dipanggil setiap kali kelas "Admin" ingin berkomunikasi dengan S3/Do.
Apa yang akan kita lakukan di sini adalah "spoof" titik akhir, yang berarti bahwa kita mengkode kerasnya. Ini akan mengubah URL AWS SDK mengirimkan permintaan ke, yang berarti bahwa kredensial Digitalocean kami harus diterima. Untuk melakukannya, cukup tambahkan dua baris berikut di baris 73 & 74: masing -masing:
#73 $ args ['region'] = 'us-east-1';
#74 $ args ['endpoint'] = 'https://ams3.digitaloceanspaces.com';
Di atas akan memaksa "titik akhir" untuk diubah setiap kali Anda menggunakan fungsi "admin" salah satu.
Ini bekerja dengan mengambil detail di atas dan menggabungkannya dengan kredensial S3 yang tersimpan (dalam kasus Anda, DigitalOcean API Key), yang memungkinkan skrip untuk berkomunikasi dengan DO. Saya menjelaskan di atas bahwa ini terbatas karena itu berarti Anda hanya dapat berkomunikasi dengan satu wilayah DO (sesuatu yang akan saya bahas sepenuhnya dalam satu menit).
-
Setelah melakukan ini, hal terakhir yang perlu kita lakukan adalah mengubah "URL" untuk masing -masing lampiran yang disinkronkan dengan DO.
Ini dilakukan di dalam kelas "Admin", dalam fungsi "wpgetattachmentUrl" (#2048) dan "addMeTainfo" (#1121):
Saya tidak yakin dari fungsi mana yang sebenarnya menyediakan fungsionalitas (saya percaya ini #2048), tetapi saya tetap mengubah keduanya.
Pada akhirnya, yang Anda lakukan hanyalah mengubah tautan AWS ke yang digitalocean. Yang bekerja dengan baik untuk peretasan ini adalah sebagai berikut:
#2057 return 'https: //'. $ info ['bucket']. '.Ams3.digitaloceanspaces.com/'. str_replace ('', '%20', $ infos ['key']);
Ini mengubah "tautan" yang dimiliki media WP ke ruang digital, yang seharusnya menunjukkannya di backend dan frontend situs Anda.
--
Saya akan merinci perbaikan yang lebih luas di posting lain.
2. "Penuh"
Seperti disebutkan di atas, perbaikan "penuh" tergantung pada bagaimana antarmuka Digitalocean dengan AWS SDK.
Secara sederhana, S3 memungkinkan Anda untuk "menghubungkan" dan kemudian memilih ember di wilayah mana pun; Digitalocean hanya mengizinkan Anda untuk terhubung dan berinteraksi dengan a lajang wilayah setiap kali.
Jika Anda ingin mencapai fungsionalitas penuh plugin (dengan DigitalOcean), ada banyak kustomisasi yang perlu terjadi di kelas "Admin". Anda pada dasarnya perlu memastikan bahwa setiap permintaan tersingkir ke titik akhir yang benar, yang memakan waktu dan cukup mahal (dalam hal koneksi API).
-
Kami telah "semacam" berhasil, meskipun secara longgar. Saya menulis ini di sini sebagai sarana untuk berbagi kemajuan, dan mungkin orang lain lebih suka mengambilnya atau sesuatu.
--
Anda perlu melakukan 4 hal utama untuk membuatnya bekerja secara terpisah:
1. Buat aliran UI "Digitalocean" terpisah
2. Hapus referensi apa pun ke S3 (mengganti dengan Digitalocean seperlunya)
3. Ubah aliran fitur tertentu untuk memungkinkan dukungan lintas wilayah
4. Pastikan lakukan tidak mengganggu S3
-
1. Untuk menambahkan tab "DigitalOcean" terpisah, Anda harus pergi ke plugin asli dan menemukan file "cloud.php" (./class/pages/settings/cloud.php):
Saya baru saja menambahkannya setelah tab S3.
Untuk membuatnya berfungsi, Anda kemudian memerlukan variabel $ html_tabdo untuk diisi, yang dilakukan dengan mengubah dua file.
Yang pertama adalah ./class/pages/settings/wp-folder-options.php file (plugin utama/asli):
Yang kedua adalah ./class/class-wp-folder-option.php:
Ini akan mengisi tab dengan berbagai pengaturan Digitalocean.
-
2. Untuk mengganti S3 dengan DO, Anda perlu memastikan Anda memiliki set file & antrian yang sama sekali berbeda untuk memastikan bahwa kedua sistem tidak bertentangan.
Ini membutuhkan beberapa hal, terutama membuat set baru "admin" dan "koneksi" kelas. Saya tidak akan masuk ke kedalaman bagaimana melakukan ini, tetapi pada dasarnya Anda ingin membuat set kelas baru yang membuat pengaturan konfigurasi mereka sendiri, dan menggunakannya untuk terhubung ke titik akhir untuk Do:
-
3. Dukungan lintas wilayah.
Seperti yang disebutkan dalam posting di atas, sistem DO bekerja secara berbeda untuk S3, dalam hal setiap permintaan disingkirkan ke wilayah tertentu (S3 adalah wilayah agnostik).
Ini berarti bahwa jika Anda ingin bekerja dengan ember/spasi dari daerah lain, Anda perlu mengerjakan beberapa sihir untuk membuat semuanya bekerja bersama.
Saya kekurangan waktu, jadi tidak akan membahas semuanya di sini, tetapi akan mengatakan bahwa jika Anda ingin membuat sistem berfungsi, Anda perlu mengedit file "./class/wpmfdo.php" di backend - memastikan bahwa Anda dapat melewati "titik akhir" Anda ingin memohon contoh SDK untuk ...
Ini memberi kita kemampuan untuk mendefinisikan "titik akhir" yang berbeda ("daerah"
Karena saat Anda perlu mendaftar ruang yang berbeda, dll.
Contoh yang baik dari ini beraksi adalah saat Anda ingin mendaftar ember yang tersedia:
Untuk mencapai hal di atas, Anda perlu bersepeda melalui semua wilayah yang tersedia di DO, dan kemudian membuat berbagai ember baru yang tersedia. Seperti yang akan Anda hargai, ini adalah solusi yang sulit untuk dibuat:
Ini membuat variabel $ list_buckets dari daerah yang berbeda (bukan hanya yang Anda gunakan untuk terhubung).
-
4. Belum melakukan ini
Pada dasarnya, Anda harus dapat membuat Digitalocean bekerja dengan S3, bahkan ketika S3 hadir.
Ini akan membutuhkan pembuatan fungsionalitas "sinkronisasi" dan sejumlah hal lain, yang belum saya selesaikan.
Seperti disebutkan di atas, perbaikan "penuh" tergantung pada bagaimana antarmuka Digitalocean dengan AWS SDK.
Secara sederhana, S3 memungkinkan Anda untuk "menghubungkan" dan kemudian memilih ember di wilayah mana pun; Digitalocean hanya mengizinkan Anda untuk terhubung dan berinteraksi dengan a lajang wilayah setiap kali.
Jika Anda ingin mencapai fungsionalitas penuh plugin (dengan DigitalOcean), ada banyak kustomisasi yang perlu terjadi di kelas "Admin". Anda pada dasarnya perlu memastikan bahwa setiap permintaan tersingkir ke titik akhir yang benar, yang memakan waktu dan cukup mahal (dalam hal koneksi API).
-
Kami telah "semacam" berhasil, meskipun secara longgar. Saya menulis ini di sini sebagai sarana untuk berbagi kemajuan, dan mungkin orang lain lebih suka mengambilnya atau sesuatu.
--
Anda perlu melakukan 4 hal utama untuk membuatnya bekerja secara terpisah:
1. Buat aliran UI "Digitalocean" terpisah
2. Hapus referensi apa pun ke S3 (mengganti dengan Digitalocean seperlunya)
3. Ubah aliran fitur tertentu untuk memungkinkan dukungan lintas wilayah
4. Pastikan lakukan tidak mengganggu S3
-
1. Untuk menambahkan tab "DigitalOcean" terpisah, Anda harus pergi ke plugin asli dan menemukan file "cloud.php" (./class/pages/settings/cloud.php):
<div id="do" class="tab-content">
<div class="wpmf_width_100 p-tb-20 wpmf_left top_bar">
<h1 class="wpmf_left"><?php esc_html_e('DigitalOcean', 'wpmf') ?></h1>
<?php
require WP_MEDIA_FOLDER_PLUGIN_DIR . '/class/pages/settings/submit_button.php';
?>
</div>
<div class="content-box content-wpmf-general">
<?php
// phpcs:ignore WordPress.Security.NonceVerification.Missing -- View request, no action
if (isset($_POST['btn_wpmf_save'])) {
?>
<div class="wpmf_width_100 top_bar saved_infos" style="padding: 20px 0">
<?php
require WP_MEDIA_FOLDER_PLUGIN_DIR . '/class/pages/settings/saved_info.php';
?>
</div>
<?php
}
?>
<div>
<div class="wpmf_row_full">
<?php
if (is_plugin_active('wp-media-folder-addon/wp-media-folder-addon.php')) {
// phpcs:ignore WordPress.Security.EscapeOutput -- Content already escaped in the method
echo $html_tabdo;
}
?>
</div>
</div>
</div>
</div>
Saya baru saja menambahkannya setelah tab S3.
Untuk membuatnya berfungsi, Anda kemudian memerlukan variabel $ html_tabdo untuk diisi, yang dilakukan dengan mengubah dua file.
Yang pertama adalah ./class/pages/settings/wp-folder-options.php file (plugin utama/asli):
Yang kedua adalah ./class/class-wp-folder-option.php:
Ini akan mengisi tab dengan berbagai pengaturan Digitalocean.
-
2. Untuk mengganti S3 dengan DO, Anda perlu memastikan Anda memiliki set file & antrian yang sama sekali berbeda untuk memastikan bahwa kedua sistem tidak bertentangan.
Ini membutuhkan beberapa hal, terutama membuat set baru "admin" dan "koneksi" kelas. Saya tidak akan masuk ke kedalaman bagaimana melakukan ini, tetapi pada dasarnya Anda ingin membuat set kelas baru yang membuat pengaturan konfigurasi mereka sendiri, dan menggunakannya untuk terhubung ke titik akhir untuk Do:
-
3. Dukungan lintas wilayah.
Seperti yang disebutkan dalam posting di atas, sistem DO bekerja secara berbeda untuk S3, dalam hal setiap permintaan disingkirkan ke wilayah tertentu (S3 adalah wilayah agnostik).
Ini berarti bahwa jika Anda ingin bekerja dengan ember/spasi dari daerah lain, Anda perlu mengerjakan beberapa sihir untuk membuat semuanya bekerja bersama.
Saya kekurangan waktu, jadi tidak akan membahas semuanya di sini, tetapi akan mengatakan bahwa jika Anda ingin membuat sistem berfungsi, Anda perlu mengedit file "./class/wpmfdo.php" di backend - memastikan bahwa Anda dapat melewati "titik akhir" Anda ingin memohon contoh SDK untuk ...
Ini memberi kita kemampuan untuk mendefinisikan "titik akhir" yang berbeda ("daerah"

Contoh yang baik dari ini beraksi adalah saat Anda ingin mendaftar ember yang tersedia:
Untuk mencapai hal di atas, Anda perlu bersepeda melalui semua wilayah yang tersedia di DO, dan kemudian membuat berbagai ember baru yang tersedia. Seperti yang akan Anda hargai, ini adalah solusi yang sulit untuk dibuat:
Ini membuat variabel $ list_buckets dari daerah yang berbeda (bukan hanya yang Anda gunakan untuk terhubung).
-
4. Belum melakukan ini
Pada dasarnya, Anda harus dapat membuat Digitalocean bekerja dengan S3, bahkan ketika S3 hadir.
Ini akan membutuhkan pembuatan fungsionalitas "sinkronisasi" dan sejumlah hal lain, yang belum saya selesaikan.
T
2 tahun lalu
·
#18122Hai,
fitur ini telah diimplementasikan baru -baru ini di plugin. Lihat detail di bawah ini.
Bersulang,
fitur ini telah diimplementasikan baru -baru ini di plugin. Lihat detail di bawah ini.

Bersulang,
- Halaman :
- 1
Belum ada balasan yang dibuat untuk posting ini.
Silakan masuk untuk mengirim balasan
Anda harus login untuk dapat mengirim balasan. Login menggunakan formulir di sebelah kanan atau daftarkan akun jika Anda baru di sini. Daftar disini "