文件存储配置

XinAdmin 提供了可视化的文件存储配置管理功能,支持多种存储驱动。

配置界面

文件存储配置

支持的存储驱动

驱动说明
local本地存储,适用于开发环境
S3Amazon S3 或兼容 S3 的对象存储(如阿里云 OSS、腾讯云 COS)
FTPFTP 服务器存储
SFTPSFTP 服务器存储

配置项说明

本地存储配置

字段说明
访问 URL文件访问的基础 URL 地址

S3 配置

字段说明
Access Key IDAWS 访问密钥 ID
Secret Access KeyAWS 访问密钥
RegionAWS 区域,如 us-east-1
BucketS3 存储桶名称
URL自定义文件 URL 前缀
Endpoint自定义端点地址(用于阿里云 OSS、腾讯云 COS 等)
使用路径样式 Endpoint启用路径样式访问,默认为 false

FTP 配置

字段说明
主机地址FTP 服务器地址
端口FTP 端口,默认 21
用户名FTP 认证用户名
密码FTP 认证密码
根目录FTP 服务器上的根目录
超时时间连接超时时间(秒)
被动模式启用被动模式传输,默认开启
SSL启用 FTP over SSL,默认关闭

SFTP 配置

字段说明
主机地址SFTP 服务器地址
端口SFTP 端口,默认 22
用户名SFTP 认证用户名
密码SFTP 认证密码
根目录SFTP 服务器上的根目录
超时时间连接超时时间(秒)
私钥SSH 私钥内容(可替代密码)
密码短语私钥的密码短语(如有)

环境变量

配置保存后会自动更新 .env 文件中的以下变量:

变量说明
FILESYSTEM_DISK默认存储驱动
FILESYSTEM_LOCAL_URL本地存储访问 URL
AWS_ACCESS_KEY_IDAWS Access Key ID
AWS_SECRET_ACCESS_KEYAWS Secret Access Key
AWS_DEFAULT_REGIONAWS 区域
AWS_BUCKETS3 存储桶名称
AWS_URLAWS 自定义 URL
AWS_ENDPOINTAWS 自定义端点
AWS_USE_PATH_STYLE_ENDPOINT使用路径样式 Endpoint
FTP_HOSTFTP 主机地址
FTP_USERNAMEFTP 用户名
FTP_PASSWORDFTP 密码
FTP_PORTFTP 端口
FTP_ROOTFTP 根目录
FTP_PASSIVEFTP 被动模式
FTP_SSLFTP SSL
FTP_TIMEOUTFTP 超时时间
SFTP_HOSTSFTP 主机地址
SFTP_USERNAMESFTP 用户名
SFTP_PASSWORDSFTP 密码
SFTP_PORTSFTP 端口
SFTP_ROOTSFTP 根目录
SFTP_TIMEOUTSFTP 超时时间
SFTP_PRIVATE_KEYSFTP 私钥
SFTP_PASSPHRASESFTP 私钥密码短语

使用示例

上传文件

use Illuminate\Support\Facades\Storage;

// 上传文件
$path = Storage::putFile('uploads', $request->file('file'));

// 上传字符串内容
$path = Storage::put('file.txt', 'Hello World');

// 检查文件是否存在
$exists = Storage::exists('file.txt');

// 获取文件内容
$content = Storage::get('file.txt');

// 删除文件
Storage::delete('file.txt');

使用不同磁盘

// 使用 S3 存储
$s3Path = Storage::disk('s3')->putFile('uploads', $request->file('file'));

// 使用 FTP 存储
$ftpPath = Storage::disk('ftp')->put('file.txt', 'Hello World');

获取文件 URL

$url = Storage::url('file.jpg');