


Bercakap tentang cara Laravel menyepadukan GitHub untuk menyimpan fail
Dokumentasi antara muka: docs.github.com/en/restApa yang anda perlu gunakan ialah API GitHub yang sangat berkuasa, di sini anda hanya perlu mencipta atau mengemas kini antara muka kandungan fail.
Buat atau kemas kini kandungan failAlamat permintaan: api.github.com/repos/{owner}/ {repo}/contents/{path}
- Kaedah permintaan:
-
ParameterPUT
Nama | Jenis | Kedudukan | Penerangan | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
terima |
rentetan | header | Cadangan Tetapkan kepada application/vnd.github.v3 json
|
||||||||||||||||||||||||||||||||||||||||||||
owner |
string | laluan | nama pengguna | ||||||||||||||||||||||||||||||||||||||||||||
repo |
rentetan | laluan | Nama gudang | ||||||||||||||||||||||||||||||||||||||||||||
laluan |
rentetan | laluan | Laluan storan fail | ||||||||||||||||||||||||||||||||||||||||||||
mesej |
rentetan | body | Diperlukan - Mesej komit |
||||||||||||||||||||||||||||||||||||||||||||
kandungan |
rentetan | body | Diperlukan - Kandungan fail baharu, menggunakan Base64 pengekodan | ||||||||||||||||||||||||||||||||||||||||||||
sha code> |
string | body |
- gumpalan SHA bagi fail yang diganti | ||||||||||||||||||||||||||||||||||||||||||||
cawangan |
rentetan | badan | Nama cawangan - versi repositori lalai cawangan biasanya master
|
||||||||||||||||||||||||||||||||||||||||||||
committer |
objek | body | Pengirim - Lalai ialah pengguna yang disahkan|||||||||||||||||||||||||||||||||||||||||||||
objek | body | Pengarang fail - lalai ialah
ditinggalkan, ia adalah pengguna yang disahkan |
author
Atribut objek 名称 | 描述 |
---|---|
name (string) |
必填 - 提交的作者或提交者的名字。如果省略 name 会收到 422 状态代码 |
email (string) |
必填 - 提交的作者或提交者的电子邮件。如果省略 email 会收到 422 状态代码 |
date (string) |
Nama | Penerangan |
---|---|
Diperlukan - Nama pengarang atau pengirim penyerahan. Jika nama ditinggalkan, anda akan menerima 422 kod status |
|
e-mel (rentetan) td> |
Diperlukan - E-mel pengarang atau pengirim penyerahan. Jika e-mel ditinggalkan, anda akan menerima 422 kod status |
tarikh (rentetan) td> |
Nama | Penerangan |
---|---|
nama (rentetan) | Diperlukan - Nama pengarang atau penghantar penyerahan. Jika |
e-mel (rentetan) td> |
Diperlukan - E-mel pengarang atau pengirim penyerahan. Jika e-mel ditinggalkan, anda akan menerima 422 kod status |
tarikh (rentetan) td> |
Pengesahan
Secara rasmi menyediakan tiga kaedah:
Pengesahan asas - nama pengguna dan kata laluan
Token OAuth2 - token
Kunci/rahsia OAuth2 - client_id dan client_secret (hanya menyokong pertanyaan)
Kaedah Disyorkan 2.
Tetapkan token
Token yang dijana hendaklah disimpan dan hanya dipaparkan sekali.Tetapan > Token akses peribadi >
Buat gudang
Pastikan anda menetapkan gudang sebagai awam supaya ia boleh dipercepatkan menggunakan jsDelivr CDN.
Menggunakan gudang GitHub sebagai katil imej, masalahnya ialah akses kepada GitHub di China sangat perlahan, anda boleh menggunakan jsDelivr CDN untuk mempercepatkan akses. jsDelivr ialah penyelesaian CDN percuma dan sumber terbuka Platform ini adalah perkhidmatan CDN percuma pertama untuk menghubungkan tanah besar China dan luar negara Ia mempunyai lesen ICP yang dikeluarkan oleh kerajaan China, jadi tidak perlu risau tentang penggunaan Great Firewall dari China. Untuk menggunakan jsDelivr untuk mempercepatkan akses, anda perlu menetapkan nama domain tersuai kepada.
https://cdn.jsdelivr.net/gh/用户名/图床仓库名
perlu menetapkan beberapa parameter konfigurasi, adalah disyorkan untuk meletakkannya dalam fail .
Kemudian buat profil di bawah .env
, saya mencipta profil
GITHUB_FILE_REPOSITORY=YOUR_REPOSITORY GITHUB_FILE_BRANCH=master GITHUB_FILE_TOKEN=YOUR_TOKEN GITHUB_FILE_PATH=YOUR_PATH GITHUB_FILE_NAME=1 GITHUB_FILE_COMMIT_MESSAGE="YOUR COMMIT MESSAGE"
config
Mencipta github-file.php
untuk menggunakan semula fungsi muat naik
<?php return [ /** * GitHub 仓库 */ 'repository' => env('GITHUB_FILE_REPOSITORY', ''), /** * 分支 */ 'branch' => env('GITHUB_FILE_BRANCH', 'master'), /** * Personal access token */ 'token' => env('GITHUB_FILE_TOKEN', ''), /** * 存储路径,若 GitHub 仓库中没有,则自动创建 */ 'path' => env('GITHUB_FILE_PATH', ''), /** * 自定义域名 * 若不定义则使用 https://raw.githubusercontent.com/ 出于某些原因可能图片加载会很慢,甚至失败 * 建议使用 https://cdn.jsdelivr.net/gh/ 加速 */ 'domain' => env('GITHUB_FILE_DOMAIN', 'https://cdn.jsdelivr.net/gh/'), /** * 文件命名 * 1 - 以时间戳方式重命名 * 2 - 以随机字符串方式重命名 * 3 - 保持原名 * ...... */ 'name' => env('GITHUB_FILE_NAME', 1), /** * commit 记录 */ 'commit_message' => env('GITHUB_FILE_COMMIT_MESSAGE', ''),];
Gunakan di mana perluTrait
<?php namespace App\Traits;use Exception;use Illuminate\Support\Str; use Illuminate\Support\Facades\Http; trait UploadToGithub{ public function uploadToGithub($file, $message = '') { $path = config('github-file.path') . '/' . $this->setFileName($file); $repository = config('github-file.repository'); if ($file->isValid()) { $url = "https://api.github.com/repos/$repository/contents/$path"; $response = Http::withToken(config('github-file.token'))->put($url, [ 'message' => $message ?: config('github-file.commit_message'), 'content' => base64_encode(file_get_contents($file)) ]); // 上传失败抛出一个错误,成功则返回 JSON $body = $response->throw()->json(); // 上传成功后 GitHub API 返回的是 201,其实有了上一步这里的判断可以省略 if ($response->successful()) { return config('github-file.domain') ? rtrim(config('github-file.domain'), '/') . '/' . trim($repository, '/') . '/' . ltrim($body['content']['path'], '/') : $body['content']['download_url']; } } throw new Exception('未发现图片'); } /** * 生成图片名称 * @param $file * @return mixed|string */ private function setFileName($file) { switch (config('github-file.name')) { case 1: return date('YmdHis', time()) . '.' . $file->getClientOriginalExtension(); case 2: return Str::random(32) . '.' . $file->getClientOriginalExtension(); case 3: default: return $file->getClientOriginalName(); } }}
UploadToGithub
use UploadToGithub;public function updload(Request $request){ $url = $this->uploadToGithub($request->file('file-field-name')); return response()->json([ 'code' => 200, 'message' => '上传成功', 'data' => [ 'url' => $url ] ]);}
Atas ialah kandungan terperinci Bercakap tentang cara Laravel menyepadukan GitHub untuk menyimpan fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Pengambilan Model Laraveleloquent: Mudah mendapatkan data pangkalan data Eloquentorm menyediakan cara ringkas dan mudah difahami untuk mengendalikan pangkalan data. Artikel ini akan memperkenalkan pelbagai teknik carian model fasih secara terperinci untuk membantu anda mendapatkan data dari pangkalan data dengan cekap. 1. Dapatkan semua rekod. Gunakan kaedah semua () untuk mendapatkan semua rekod dalam jadual pangkalan data: USEAPP \ MODELS \ POST; $ POSTS = POST :: SEMUA (); Ini akan mengembalikan koleksi. Anda boleh mengakses data menggunakan gelung foreach atau kaedah pengumpulan lain: foreach ($ postsas $ post) {echo $ post->

Laravel adalah rangka kerja PHP untuk membina aplikasi web yang mudah. Ia menyediakan pelbagai ciri yang kuat termasuk: Pemasangan: Pasang Laravel CLI secara global dengan komposer dan buat aplikasi dalam direktori projek. Routing: Tentukan hubungan antara URL dan pengendali dalam laluan/web.php. Lihat: Buat pandangan dalam sumber/pandangan untuk menjadikan antara muka aplikasi. Integrasi Pangkalan Data: Menyediakan integrasi keluar-of-the-box dengan pangkalan data seperti MySQL dan menggunakan penghijrahan untuk membuat dan mengubah suai jadual. Model dan Pengawal: Model mewakili entiti pangkalan data dan proses pengawal permintaan HTTP.

Git adalah sistem kawalan versi, dan GitHub adalah platform hosting kod berasaskan Git. Git digunakan untuk menguruskan versi kod dan menyokong operasi tempatan; Github menyediakan alat kerjasama dalam talian seperti Penjejakan Isu dan PullRequest.

Cecair memproses 7 juta rekod dan membuat peta interaktif dengan teknologi geospatial. Artikel ini meneroka cara memproses lebih dari 7 juta rekod menggunakan Laravel dan MySQL dan mengubahnya menjadi visualisasi peta interaktif. Keperluan Projek Cabaran Awal: Ekstrak Wawasan berharga menggunakan 7 juta rekod dalam pangkalan data MySQL. Ramai orang mula -mula mempertimbangkan bahasa pengaturcaraan, tetapi mengabaikan pangkalan data itu sendiri: Bolehkah ia memenuhi keperluan? Adakah penghijrahan data atau pelarasan struktur diperlukan? Bolehkah MySQL menahan beban data yang besar? Analisis awal: Penapis utama dan sifat perlu dikenalpasti. Selepas analisis, didapati bahawa hanya beberapa atribut yang berkaitan dengan penyelesaiannya. Kami mengesahkan kemungkinan penapis dan menetapkan beberapa sekatan untuk mengoptimumkan carian. Carian Peta Berdasarkan Bandar

Bagaimanakah Laravel memainkan peranan dalam logik backend? Ia memudahkan dan meningkatkan pembangunan backend melalui sistem penghalaan, eloquentorm, pengesahan dan kebenaran, acara dan pendengar, dan pengoptimuman prestasi. 1. Sistem penghalaan membolehkan definisi struktur URL dan logik pemprosesan permintaan. 2.eloquentorm memudahkan interaksi pangkalan data. 3. Sistem pengesahan dan kebenaran adalah mudah untuk pengurusan pengguna. 4. Acara dan pendengar melaksanakan struktur kod yang ditambah dengan longgar. 5. Pengoptimuman prestasi meningkatkan kecekapan aplikasi melalui caching dan beratur.

Apabila membangunkan laman web yang menggunakan CraftCMS, anda sering menghadapi masalah caching fail sumber, terutamanya apabila anda sering mengemas kini fail CSS dan JavaScript, versi lama fail mungkin masih di -cache oleh penyemak imbas, menyebabkan pengguna tidak melihat perubahan terkini dalam masa. Masalah ini bukan sahaja memberi kesan kepada pengalaman pengguna, tetapi juga meningkatkan kesukaran pembangunan dan debugging. Baru-baru ini, saya menghadapi masalah yang sama dalam projek saya, dan selepas beberapa penjelajahan, saya dapati plugin Wiejeben/Craft-Laravel-Mix, yang sempurna menyelesaikan masalah caching saya.

Laravel menyediakan rangka kerja auth yang komprehensif untuk melaksanakan fungsi log masuk pengguna, termasuk: Menentukan model pengguna (model fasih), membuat borang log masuk (enjin templat bilah), menulis pengawal log masuk (mewarisi auth \ logincontroller) tajuk keselamatan. Di samping itu, rangka kerja AUTH juga menyediakan fungsi seperti menetapkan semula kata laluan, mendaftar dan mengesahkan e -mel. Untuk maklumat lanjut, sila rujuk dokumentasi Laravel: https://laravel.com/doc

Ringkasan Artikel: Artikel ini menyediakan arahan langkah demi langkah terperinci untuk membimbing pembaca tentang cara memasang rangka kerja Laravel dengan mudah. Laravel adalah rangka kerja PHP yang kuat yang mempercepat proses pembangunan aplikasi web. Tutorial ini merangkumi proses pemasangan dari keperluan sistem untuk mengkonfigurasi pangkalan data dan menyediakan penghalaan. Dengan mengikuti langkah -langkah ini, pembaca dapat dengan cepat dan cekap meletakkan asas yang kukuh untuk projek Laravel mereka.
