cari
Rumahrangka kerja phpLaravelBercakap tentang cara Laravel menyepadukan GitHub untuk menyimpan fail

Pengenalan API GitHub

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 fail

Alamat permintaan: api.github.com/repos/{owner}/ {repo}/contents/{path}

    Kaedah permintaan:
  • PUT

    Parameter
Pengirim - Lalai ialah pengguna yang disahkan
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
名称 类型 位置 描述
accept string header 建议设置为 application/vnd.github.v3 json
owner string path 用户名
repo string path 仓库名
path string path 文件存储路径
message string body 必填 - The commit message
content string body 必填 - 新文件内容,使用 Base64 编码
sha string body 如果要更新文件,则必填 - 被替换文件的 blob SHA
branch string body 分支名称 - 版本库的默认分支通常是 master
committer object body 提交人 - 默认为已认证的用户
author object body 文件的作者 - 默认为 committer,如省略 committer,则为认证的用户
Diperlukan jika anda ingin mengemas kini fail

- gumpalan SHA bagi fail yang diganti

cawangan rentetan badan Nama cawangan - versi repositori lalai cawangan biasanya master
committer objek body
objek body Pengarang fail - lalai ialah
名称 描述
name (string) 必填 - 提交的作者或提交者的名字。如果省略 name 会收到 422 状态代码
email (string) 必填 - 提交的作者或提交者的电子邮件。如果省略 email 会收到 422 状态代码
date (string)
, jika

ditinggalkan, ia adalah pengguna yang disahkan

author Atribut objek
名称 描述
name (string) 必填 - 提交的作者或提交者的名字。如果省略 name 会收到 422 状态代码
email (string) 必填 - 提交的作者或提交者的电子邮件。如果省略 email 会收到 422 状态代码
date (string)
Nama Penerangan
nama (rentetan) 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>
Sifat objek Diperlukan - Nama pengarang atau penghantar penyerahan. Jika nama ditinggalkan, anda akan menerima 422 kod status
Nama Penerangan
nama (rentetan)
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

Tetapan > Token akses peribadi >

Token yang dijana hendaklah disimpan dan hanya dipaparkan sekali.

Bercakap tentang cara Laravel menyepadukan GitHub untuk menyimpan fail

Buat gudang

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/用户名/图床仓库名

Kod Laravel

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"

configMencipta github-file.php untuk menggunakan semula fungsi muat naik

<?php return [
 /**
 * GitHub 仓库
 */
 &#39;repository&#39; => 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 = &#39;&#39;)
    {
        $path = config(&#39;github-file.path&#39;) . &#39;/&#39; . $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
        ]
    ]);}
Lima tutorial video Laravel terbaharu

( Disyorkan)                                                                        

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!

Kenyataan
Artikel ini dikembalikan pada:learnku. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Laravel (PHP) vs Python: Kes penggunaan dan aplikasi yang berbezaLaravel (PHP) vs Python: Kes penggunaan dan aplikasi yang berbezaApr 18, 2025 am 12:16 AM

Memilih Laravel atau Python bergantung kepada keperluan projek: 1) Jika anda perlu dengan cepat membangunkan aplikasi web dan menggunakan ORM dan sistem pengesahan, pilih Laravel; 2) Jika ia melibatkan analisis data, pembelajaran mesin atau pengkomputeran saintifik, pilih Python.

Laravel dan Python: Mencari alat yang betulLaravel dan Python: Mencari alat yang betulApr 18, 2025 am 12:14 AM

Laravel sesuai untuk membina aplikasi web dengan cepat, dan Python sesuai untuk projek yang memerlukan fleksibiliti dan fleksibiliti. 1) Laravel menyediakan ciri -ciri yang kaya seperti ORM dan Routing, sesuai untuk ekosistem PHP. 2) Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kuat, dan sesuai untuk bidang seperti pembangunan web dan sains data.

Laravel dan PHP: Membuat laman web dinamikLaravel dan PHP: Membuat laman web dinamikApr 18, 2025 am 12:12 AM

Gunakan Laravel dan PHP untuk membuat laman web dinamik dengan cekap dan menyeronokkan. 1) Laravel mengikuti seni bina MVC, dan enjin templat bilah memudahkan penulisan HTML. 2) Sistem penghalaan dan mekanisme pemprosesan permintaan membuat definisi URL dan pemprosesan input pengguna mudah. 3) Eloquentorm memudahkan operasi pangkalan data. 4) Penggunaan penghijrahan pangkalan data, operasi CRUD dan templat bilah ditunjukkan melalui contoh sistem blog. 5) Laravel menyediakan fungsi pengesahan dan kebenaran pengguna yang kuat. 6) Kemahiran penyahpepijatan termasuk menggunakan sistem pembalakan dan alat artisan. 7) Cadangan pengoptimuman prestasi termasuk pemuatan malas dan caching.

Laravel dan timbunan penuh: depan dan belakang bersamaLaravel dan timbunan penuh: depan dan belakang bersamaApr 18, 2025 am 12:07 AM

Laravel menyedari perkembangan stack penuh melalui enjin templat bilah, eloquentorm, alat artisan dan Laravelmix: 1. Blade memudahkan pembangunan front-end; 2. Eloquent memudahkan operasi pangkalan data; 3 Artisan meningkatkan kecekapan pembangunan; 4. Laravelmix menguruskan sumber hadapan.

Laravel: Rangka kerja untuk pembangunan web modenLaravel: Rangka kerja untuk pembangunan web modenApr 18, 2025 am 12:05 AM

Laravel adalah rangka kerja berasaskan PHP moden yang mengikuti model seni bina MVC, menyediakan alat dan fungsi yang kaya, dan memudahkan proses pembangunan web. 1) Ia mengandungi eloquentorm untuk interaksi pangkalan data, 2) antara muka baris arahan artisan untuk penjanaan kod cepat, 3) enjin templat bilah untuk pembangunan pandangan yang cekap, 4) sistem penghalaan yang kuat untuk menentukan struktur URL, 5) sistem pengesahan untuk pengurusan pengguna, 6)

Laravel (PHP) vs Python: Menimbang kebaikan dan keburukanLaravel (PHP) vs Python: Menimbang kebaikan dan keburukanApr 17, 2025 am 12:18 AM

Laravel sesuai untuk membina aplikasi web dengan cepat, sementara Python sesuai untuk pelbagai senario aplikasi yang lebih luas. 1. Laravel Menyediakan Eloquentorm, Enjin Template Blade dan Alat Artisan Untuk Memudahkan Pembangunan Web. 2. Python terkenal dengan jenis dinamiknya, perpustakaan standard yang kaya dan ekosistem pihak ketiga, dan sesuai untuk pembangunan web, sains data dan bidang lain.

Laravel vs Python: Membandingkan kerangka dan perpustakaanLaravel vs Python: Membandingkan kerangka dan perpustakaanApr 17, 2025 am 12:16 AM

Laravel dan Python masing-masing mempunyai kelebihan mereka sendiri: Laravel sesuai untuk membina aplikasi web yang kaya dengan ciri-ciri, dan Python berfungsi dengan baik dalam bidang sains data dan pengaturcaraan umum. 1. Laravel menyediakan enjin template eloquentorm dan bilah, sesuai untuk membina aplikasi web moden. 2. Python mempunyai perpustakaan standard yang kaya dan perpustakaan pihak ketiga, dan rangka kerja Django dan Flask memenuhi keperluan pembangunan yang berbeza.

Tujuan Laravel: Membina aplikasi web yang mantap dan eleganTujuan Laravel: Membina aplikasi web yang mantap dan eleganApr 17, 2025 am 12:13 AM

Laravel bernilai memilih kerana ia boleh menjadikan struktur kod jelas dan proses pembangunan lebih artistik. 1) Laravel didasarkan pada PHP, mengikuti seni bina MVC, dan memudahkan pembangunan web. 2) Fungsi terasnya seperti eloquentorm, alat artisan dan templat bilah meningkatkan keanggunan dan kekukuhan pembangunan. 3) Melalui penghalaan, pengawal, model dan pandangan, pemaju dapat membina aplikasi dengan cekap. 4) Fungsi lanjutan seperti giliran dan pemantauan acara meningkatkan prestasi aplikasi.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.