suivante vous présentera comment Laravel intègre github pour stocker des fichiers. J'espère qu'elle sera utile à tout le monde !
Introduction à l'API GitHubDocumentation de l'interface : docs.github.com/en/restVous devez utiliser la très puissante API GitHub, où il vous suffit de créer ou de mettre à jour l'interface de contenu des fichiers.
Créer ou mettre à jour le contenu du fichierAdresse de demande : api.github.com/repos/{owner}/{repo}/contents/{path}
Méthode de demande : PUT
PUT
参数
名称 | 类型 | 位置 | 描述 |
---|---|---|---|
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 ,则为认证的用户 |
committer
对象的属性
名称 | 描述 |
---|---|
name (string) |
必填 - 提交的作者或提交者的名字。如果省略 name 会收到 422 状态代码 |
email (string) |
必填 - 提交的作者或提交者的电子邮件。如果省略 email 会收到 422 状态代码 |
date (string) |
author
对象的属性
propriétaire
🎜🎜string🎜🎜path🎜🎜username🎜🎜🎜repo
🎜🎜 chaîne🎜🎜chemin🎜🎜nom de l'entrepôt🎜🎜🎜chemin
🎜🎜chaîne🎜🎜chemin🎜🎜chemin de stockage des fichiers🎜🎜🎜message
🎜🎜string 🎜🎜body🎜🎜🎜Required🎜 - Le message de commit🎜🎜🎜content
🎜🎜string🎜🎜body🎜🎜🎜Required🎜 - Le nouveau contenu du fichier, encodé en utilisant 🎜Base64 🎜🎜 🎜🎜sha
🎜🎜string🎜🎜body🎜🎜🎜Obligatoire si vous souhaitez mettre à jour le fichier🎜 - blob SHA du fichier remplacé🎜🎜🎜branche code>🎜🎜string🎜🎜body🎜🎜Nom de la branche - La branche par défaut du référentiel est généralement <code>master
🎜🎜🎜committer
🎜🎜object🎜🎜 body🎜🎜 Auteur - La valeur par défaut est l'utilisateur authentifié 🎜🎜🎜author
🎜🎜object🎜🎜body🎜🎜L'auteur du fichier - La valeur par défaut est committer
, si committer
, c'est l'attribut user authentifié🎜🎜🎜🎜🎜committer
de l'objet🎜名称 | 描述 | ||||
---|---|---|---|---|---|
name (string) |
必填 - 提交的作者或提交者的名字。如果省略 name 会收到 422 状态代码 |
||||
email (string) |
必填 - 提交的作者或提交者的电子邮件。如果省略 email 会收到 422 状态代码 |
||||
date |
accepter
application/vnd .github.v3+json 🎜🎜 |
||||
name
(string)🎜🎜🎜Obligatoire🎜 - Le nom de l'auteur ou l'auteur de la soumission. Si name
est omis, vous recevrez le code de statut 422
🎜🎜🎜email
(string)🎜🎜🎜required🎜 - le l'auteur de la soumission ou l'e-mail de l'auteur de la soumission. Si email
est omis, vous recevrez le code de statut 422
🎜🎜🎜date
(string)🎜🎜🎜🎜🎜🎜🎜 🎜auteur
Attributs de l'objet🎜Nom | Description |
---|---|
name
(string)🎜🎜🎜Obligatoire🎜 - Le nom de l'auteur ou de l'auteur de la soumission. Si name
est omis, vous recevrez le code de statut 422
🎜🎜🎜email
(string)🎜🎜🎜required🎜 - le l'auteur de la soumission ou l'e-mail de l'auteur de la soumission. Si email
est omis, vous recevrez le code de statut 422
🎜🎜🎜date
(string)🎜🎜🎜🎜🎜🎜🎜Authentification
Fournit officiellement trois méthodes :
Authentification de base - nom d'utilisateur et mot de passe
OAuth2 Token - token
OAuth2 clé/secret - client_id et client_secret (prend uniquement en charge les requêtes)
Il est recommandé d'utiliser la deuxième méthode.
Paramètres > Paramètres du développeur > Jetons d'accès personnels > Générer un nouveau jeton
Le jeton généré ne doit être enregistré et affiché qu'une seule fois.
Assurez-vous de définir l'entrepôt comme public afin qu'il puisse être accéléré à l'aide du CDN jsDelivr.
En utilisant l'entrepôt GitHub comme lit d'images, le problème est que l'accès à GitHub en Chine est très lent. Vous pouvez utiliser jsDelivr CDN pour accélérer l'accès. jsDelivr est une solution CDN gratuite et open source. La plateforme est le premier service CDN gratuit à connecter la Chine continentale et l'étranger. Elle dispose d'une licence ICP délivrée par le gouvernement chinois, vous n'avez donc pas à vous soucier de l'utilisation du Grand Pare-feu. de Chine. Pour utiliser jsDelivr pour accélérer l'accès, vous devez définir le nom de domaine personnalisé sur https://cdn.jsdelivr.net/gh/username/image bed Warehouse Name
. https://cdn.jsdelivr.net/gh/用户名/图床仓库名
。
Laravel 代码
需要设置几个配置参数,建议放到 .env
文件中。
1 2 3 4 5 6 |
|
然后在 config
下创建一个配置文件,我创建了一个 github-file.php
配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
创建一个 Trait
以复用上传功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
在需要的地方使用 UploadToGithub
Le code Laravel doit définir plusieurs paramètres de configuration, il est recommandé de les mettre dans le fichier
.env
.Ensuite créez un fichier de configuration sous
1
2
3
4
5
6
7
8
9
10
use
UploadToGithub;
public
function
updload(Request
$request
){
$url
=
$this
->uploadToGithub(
$request
->file('file-field-name'));
return
response()->json([
'code' => 200,
'message' => '上传成功',
'data' => [
'url' =>
$url
]
]);}
Copier après la connexionconfig
, j'ai créé un fichier de configurationgithub-file.php
rrreeeCréez unTrait
Réutilisez le fonction de téléchargement 🎜🎜🎜Les cinq derniers didacticiels vidéo Laravel🎜🎜🎜 (recommandé) 🎜🎜🎜🎜🎜
Nom | Description |
---|---|
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!