ImgURL Pro帮助文档
ImgURL是一款使用PHP开发的图床程序,分社区版和专业版(Pro),专业版支持七牛、FTP、S3等多种外部存储。
介绍
ImgURL首个版本诞生于2017年12月,经过重构 + 多个版本更新,于2019年7月上线ImgURL Pro专业版图床程序。ImgURL社区版将继续维护,但是功能有别于专业版。
- 如果仅是个人或内部使用一般社区版即可满足需要
- 若您需要多个外部存储,同时需要开放给其它用户使用,建议选择专业版。专业版使用MySQL数据库,性能更好。社区版使用SQLite 3数据库,该数据库对并发支持不是很好。
功能对比
专业版特点
- ✅支持拽拖上传、多图上传、Ctrl + V粘贴上传、URL上传
- ✅支持图片裁剪,自动生成缩略图
- ✅限制访客上传数量/限制上传大小
- ✅图片压缩
- ✅图片鉴黄
- ✅API支持
- ✅无广告
- ✅自定义底部版权
- ✅多个外部存储(本地、Backblaze B2、腾讯COS、FTP、七牛云、S3)
环境要求
- 5.6 <= PHP >= 7.4
- 5.6 <= MySQL 5.7
- GD2
- ImageMagick(非必须)
- Fileinfo
- Pathinfo
- PHP for FTP组件(非必须,FTP上传需要)
- Redis
专业版演示
- http://test.imgurl.org/
- 账号:xiaoz
- 密码:xiaoz.me
其他
ImgURL定价为198元/域名(不限制子域名),可享受6个月技术支持,和长期更新。
- 购买ImgURL Pro:http://shop.imgurl.org/order
- 下载ImgURL Pro:https://dwz.ovh/8
安装
环境要求
- 5.6 <= PHP <= 7.4
- 5.6 <= MySQL <= 5.7
购买授权
ImgURL Pro需要进行授权,需要先前往:http://shop.imgurl.org/order 购买授权,购买后系统会将授权文件发送到您填写的邮箱(注意垃圾箱),邮件内容大致如下,请妥善保管下图中红框标识的内容。
注意:邮件里面有个key
和一个授权文件(txt的附件)都会用到。
下载安装程序
2.x.x
版本开始,程序的下载地址在授权邮件中一并提供,地址有效期只有7天,收到授权邮件后请尽快下载并保存到安全的地方。
新建数据库
请确保您已经安装了MySQL数据库(需要大于等于5.6或小于等于5.7)并新建一个空的数据库(数据库建议使用5.6
或5.7
版本,暂不支持8.x)
安装需要的PHP扩展
ImgURL 2.x需要以下PHP扩展:
- fileinfo
- redis
- imagemagick
- exif
如果是宝塔面板用户,可直接通过“PHP管理 - 安装扩展”找到上述扩展并安装即可。
配置伪静态
Nginx
将下面的规则添加到Nginx server段内,别忘记重载一次nginx
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* \.(db3|json)$ {
deny all;
}
location ~* ^/(temp|upload|imgs|data|application|static|system)/.*.(php|php5)$ {
return 403;
}
宝塔用户的话直接复制上面的规则粘贴到伪静态中,如下截图。
Apache
如果您使用的Apache一般不用再进行设置,默认已经内置Apache重写规则,位于站点根目录的.htaccess
,内容如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
IIS 7+(不推荐在IIS环境下运行)
以下规则适用于IIS 7以上,在站点根目录创建一个 web.config
文件,并添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Rule" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
<add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
访问安装
正常情况下,访问您的域名即可看到安装界面,第一步会检测安装环境,如下图。
第二步会要求填写授权信息,如下图:
- 邮箱:购买ImgURL授权时填写的邮箱
- KEY:购买授权后会将KEY发送到您的邮箱
授权验证成功后会进入第三步,要求填写数据库信息并设置网站管理员账号、密码。
根据界面指引填写完毕后,点击“检测数据库连接”即可完成安装,安装完毕后管理员后台在页面底部的“login”按钮。
其它说明
如果安装完毕后出现500错误,可能是您Redis设置了密码导致,您只需要修改config.php
这个配置文件,将:
$config['redis']['password'] = NULL;
修改为您自己的Redis密码即可:
$config['redis']['password'] = "您的redis密码";
基本使用
图片上传
上传功能没什么好说的,界面已经比较清晰明了,需要一提的是如果您选择粘贴上传,必须将鼠标移动到上传框内,否则上传不会有反应。
探索发现
点击导航菜单的探索发现按钮可以查阅游客上传的图片(管理员上传的图片不会在探索发现显示),可以根据类型来进行基本筛选。
探索发现页面鼠标移动到图片上
- 如果单击图片可以放大
- 如果是点击蓝色按钮会生成不同格式的链接供用户使用
- 点击蓝色地球按钮会进入探索发现页面
- 红色垃圾桶按钮可以删除图片(仅管理员登录后有权限)
URL上传
ImgURL后台支持URL上传,输入图片的URL链接即可,一次最多支持10个,该功能仅开放给管理员使用,游客无法使用。
外部存储
ImgURL Pro目前支持本地、Backblaze B2、腾讯云COS、FTP、七牛云等存储方式。
存储方案
ImgURL Pro目前支持本地、Backblaze B2、腾讯云COS、FTP、七牛云等存储方式(后期可能将支持更多)
在后台 - 系统设置 - 存储方案可以看到所有存储设置。
存储方案选择
- 本地:上传效率最好,但是会占用服务器磁盘空间和网络资源
- Backblaze B2:服务器在美国,如果你图床服务器也在美国可以使用B2,如果图床安装在国内服务器速度会非常慢
- 腾讯云COS:建议国内服务器使用
- FTP:比较灵活,建议选择和图床服务器较近的区域。比如你图床安装在国内服务器,FTP建议也是国内的。
- 七牛云:免费10G空间和10G下载流量
注意事项
本地存储和FTP存储,域名设置后面没有斜杠(/)外,其余的存储在设置的时候必须有斜杠(/),否则会存在异常。
其它说明
- 如果游客上传设置为“否”,则游客无法选择该上传方式,管理员依然可以选择。
- 如果开关为“关闭”,则无论是管理员还是游客都无法选择该上传方式。
本地存储
本地存储图片是保存在服务器的,会占用服务器磁盘空间、带宽等资源,该存储是默认的(无法关闭上传),一般不需要额外设置,如有需要可以单独为本地存储绑定一个CDN域名。(注意:本地存储的域名最后没有斜杠(/))
绑定CDN域名思路
假设您创建了一个站点A,并将图床安装到了A,如果希望图片通过CDN域名来访问,只需要做如下操作。
- 在站点A额外绑定一个域名B
- 然后到第三方CDN服务商(如CloudFlare)对域名B启用CDN加速
- 最后打开ImgURL后台 - 系统设置 - 存储方案 - 本地 - 填写B域名并启用
Backblaze B2
关于Backblaze
Backblaze是一家国外的备份、存储提供商,B2存储有免费10G的额度,价格非常低廉,如果存储1G的数据,仅需5$/月,如果有需要的可以前往:https://www.backblaze.com/ 进行注册。
获取密钥
登录之后在后台B2云存储 - 创建一个桶 - 权限设置为公开,如下图。(如果您打开不是中文界面,可以在B2网页右下方设置为中文语言)
接下来我们需要获取4个重要的参数,用于B2 API设置。
打开后台B2云存储 - App Keys,同时点击“生成新的主应用程序密钥”(只会出现一次,请妥善保存)
上面我们已经获取到“KeyID”和“主程序密钥”2个参数了,继续切换到“B2云存储” - 桶,可以查看到刚刚创建的桶“imgurl”有一个“桶身份证”把它记录下来。
接下来点击“上传/下载按钮”往里面随便传一个文件,点击文件详情,获取友好的URL地址,比如:https://f002.backblazeb2.com/file/imgurl/imgs/2019/06/a91bf049535ce20a.jpg
我们只需要https://f002.backblazeb2.com/file/imgurl/ 这部分就行了,这样我们4个参数已经获取完毕,分别是是:<KeyID><主程序密钥><桶身份证><友好URL>
修改配置文件
打开站点根目录的config.php
,填写对应的信息,只需要填写下面三项(其余选项不填写):
- $config['b2']['b2_app_key_id']:对应KeyID
- $config['b2']['b2_app_key']:对应主程序密钥
- $config['b2']['b2_bucket_id']:对应桶身份证
启用B2存储
打开ImgURL后台 - 系统设置 - 存储方案 - 对B2存储进行设置,绑定域名填写上面获取到的“友好URL”,并开启允许上传。
启用CloudFlare CDN
如果需要对B2存储启用CloudFlare CDN可以参考:Backblaze B2,低价的对象存储,支持接入CloudFlare CDN
注意事项
- 绑定域名末尾需要带有斜杠(/)
- B2服务器在美国,适用于您图床也是安装在美国服务器上,否则请求接口延迟会非常高,会大大降低图片上传速度,同时还影响上传成功率。
腾讯COS
COS是腾讯提供的对象存储服务,全称为Cloud Object Storage,COS
新建bucket
在腾讯云后台 - 根据提示创建存储桶 - 存储桶权限为“公有读私有写”。
获取密钥
直接访问:https://console.cloud.tencent.com/cam/capi 获取需要的密钥信息,如果没有自行点击新建密钥即可。
这个页面我们需要3个参数,分别为<APPID><SecretId><SecretKey>
把它保存下来。
获取COS地域
在创建存储桶的时候会让你选择存储桶的地区,对应地区域名列表,请参考:https://cloud.tencent.com/document/product/436/6224
假如存储桶地区为“广州(华南)”我们需要的地址为“cos.ap-guangzhou.myqcloud.com”
修改配置文件
打开站点根目录下的config.php
找到腾讯COS设置,填写对应的信息:
-
$config['cos']['app_id']
:对应APPID -
$config['cos']['access_key_id']
:对应SecretId -
$config['cos']['access_key_secret']
:对应SecretKey -
$config['cos']['host']
:对应可用地域(比如:cos.ap-guangzhou.myqcloud.com)
启用腾讯COS
打开ImgURL后台 - 系统设置 - 存储方案 - 腾讯COS - 设置COS绑定域名并进行启用即可。
注意事项
- 绑定域名末尾需要带上斜杠(/)
-
写到
config.php
配置的时候bucket不需要带有-数字
- 在新建bucket的时候,地区请选择和您图床服务器较仅的区域。比如您图床安装在广州的服务器上,那么创建bucket的时候区域建议选择广州。
- 假如您图床安装在国外的服务器,但是新建一个国内区域的bucket,将导致上传成功率和速度下降。
FTP
在使用FTP存储之前,请确保已经有正常可用的FTP服务,同时确保PHP已经支持FTP组件,可以在ImgURL Pro后台首页查看是否支持FTP组件。
适用场景
FTP存储方式非常灵活,可以将图片存储在你想要的服务器上。比如您图床安装在A服务器,绑定了A域名,但是希望将图片上传到B服务器,使用B域名来访问图片,您只需要:
- 在B服务器新建一个站点,绑定B域名
- 在B服务器开设一个FTP账号,目录指向到B站点
- 修改
config.php
配置文件,设置FTP信息 - 在ImgURL后台 - 系统设置 - 存储方案 - FTP,填写B域名的信息,并启用即可
修改配置文件
打开站点根目录下的config.php文件,找到FTP设置,填写FTP地址、账号、密码等信息。
- $config['ftp']['hostname']:FTP连接地址(可以是IP或域名)
- $config['ftp']['username']:FTP用户名
- $config['ftp']['password']:FTP密码
启用FTP存储
在ImgURL后台 - 系统设置 - 存储方案 - FTP,填写FTP绑定域名,并启用。
宝塔面板无法上传的问题
修改宝塔配置pure-ftp配置文件 /www/server/pure-ftpd/etc/pure-ftpd.conf
将
TLS 1
改成
TLS 0
然后重启下FTP: /etc/init.d/pure-ftpd restart
注意事项
- FTP存储绑定域名末尾没有斜杠(/)
- 不支持docker搭建的FTP
七牛云
自ImgURL Pro v1.1之后开始支持七牛云存储
新建存储空间
在七牛云后台 - 对象存储 - 新建存储空间,如下截图。
- 存储空间名称:随便填写(只要符合要求就行)
- 存储区域:国内服务器建议选择、华东、华北、华南
- 访问控制:公开空间
获取密钥
后台 - 个人中心 - 密钥管理,或者登录后直接访问:https://portal.qiniu.com/user/key 获取AccessKey/SecretKey,如下图。
修改配置文件
打开 config.php
找到七牛云设置,填写对应信息。
- $config['qiniu']['AccessKey']:对应七牛AccessKey
- $config['qiniu']['SecretKey']:对应七牛SecretKey
- $config['qiniu']['bucket']:对应七牛存储空间名称
- $config['qiniu']['up_host']:根据你空间存储区域参考:https://developer.qiniu.com/kodo/manual/1671/region-endpoint 获取,比如你创建空间选择的华南,那么此项对应地址为:http://up-z2.qiniup.com
启用七牛云存储
打开ImgURL后台 - 系统设置 - 存储方案 - 七牛云 - 设置七牛云空间绑定域名并进行启用即可。
注意事项
- 绑定域名末尾需要带上斜杠(/)
- 在新建bucket的时候,地区请选择和您图床服务器较近的区域。比如您图床安装在广州的服务器上,那么创建存储区域的时候区域建议选择华南。
- 假如您图床安装在国外的服务器,但是新建一个国内区域的bucket,将导致上传成功率和速度下降。
AWS S3
2.0.0
版本开始支持AWS S3存储,只要是支持S3协议的都可以,并非一定要用AWS S3,您也可以自建minio
等。
修改config.php
在config.php
中找到S3的配置,内容如下:
$config['s3']['region'] = 'us-east-1';
$config['s3']['endpoint'] = 'http://minio.xxx.com:9000';
$config['s3']['key'] = 'xxx';
$config['s3']['secret'] = 'xxx';
$config['s3']['bucket'] = 'xxx';
- region:如果有就填写对应的区域代码,如果没有,则不填写
- endpoint:就是S3的接口地址,如果是自建的minio,一般是
http://xxx.com:9000
- key:如果是自建minio就是用户名
- bucket:存储桶的名称
设置域名
在后台设置 - 系统设置 - 存储方案 - S3设置S3绑定的访问域名,注意,末尾需要带有/
注意S3的开关只对游客有效,如果是注册用户,并且设置了“注册用户默认存储策略”为S3,是否启用对注册用户都有效。
兼容存储
大部分对象存储都对AWS S3协议做了兼容,以下是部分存储的设置方法。
七牛云
七牛云后台 - 空间管理 - 新建空间 - 存储空间名称,名称根据规则填写即可,这个名称对应config.php
里面的:$config['s3']['bucket']
,存储区域选择离你图床最近的服务器,访问控制选择公开。
访问https://developer.qiniu.com/kodo/4088/s3-access-domainname获取“区域简称”和“访问 Endpoint”,对应关系如下:
-
$config['s3']['region']
对应七牛的区域简称
,比如:cn-south-1
-
$config['s3']['endpoint']
对应七牛的访问 Endpoint
,注意前面需要添加https
,末尾不需要/
,比如:https://s3-cn-south-1.qiniucs.com
访问https://portal.qiniu.com/user/key获取七牛的AccessKey/SecretKey
对应关系如下:
-
$config['s3']['key']
对应七牛的AccessKey
-
$config['s3']['bucket']
对应七牛的存储空间名称
在ImgURL后台 - 系统设置 - 存储方案 - S3绑定域名填写七牛的空间绑定域名,注意末尾需要带有/
,如下截图。
阿里云
登录阿里云OSS后台:https://oss.console.aliyun.com/bucket - 创建 Bucket,按照如下截图填写。
打开站点根目录下的config.php
,找到S3的配置选项:
$config['s3']['region'] = 'us-east-1';
$config['s3']['endpoint'] = 'http://minio.xxx.com:9000';
$config['s3']['key'] = 'xxx';
$config['s3']['secret'] = 'xxx';
$config['s3']['bucket'] = 'xxx';
继续打开阿里云文档:公共云下OSS Region和Endpoint对照表,对应关系如下:
-
region
对应阿里云Region ID -
endpoint
:http://buket.外网Endpoint
,比如http://bucket.oss-cn-hangzhou.aliyuncs.com
-
bucket
:对应阿里云存储桶名称
继续打开阿里云:访问凭证管理 获取AccessKey ID 和 AccessKey Secret
-
key
对应阿里云AccessKey ID -
secret
对应阿里云AccessKey Secret
完整的配置如下:
$config['s3']['region'] = 'oss-ap-southeast-1';
$config['s3']['endpoint'] = 'http://bucket.oss-ap-southeast-1.aliyuncs.com';
$config['s3']['key'] = 'xxx';
$config['s3']['secret'] = 'xxx';
$config['s3']['bucket'] = 'bucket';
Backblaze B2
Backblaze是一家国外的备份、存储提供商,B2存储有免费10G的额度,价格非常低廉,如果存储1TB数据,仅需5$/月,如果有需要的可以前往:https://www.backblaze.com/ 进行注册。
登录B2后台 - 创建一个桶。
- 桶独特的名字:就是存储桶的名称
- 桶里面的档案是:公众
- 其它选项保持默认
找到刚刚创建的桶 - 点桶设定。
桶信息设置为{"cache-control":"max-age=604800"}
这一行的意思是让浏览器缓存7天,不然每次都回源,浪费流量。
继续点生命周期的设置 - 选择“只保留了最后版本的文件”
B2后台点击左侧 - 账户 - 我的应用程序键 - 添加新的应用程序密钥。
按照下图填写。
创建成功后程序密钥只会出现一次,之一复制并保存下来,稍后使用。
接下来修改config.php
填写S3配置信息,B2的配置参考如下:
/*------------------------------------- S3设置 -------------------------------------*/
$config['s3']['region'] = 'us-west-002';
$config['s3']['endpoint'] = 'https://s3.us-west-002.backblazeb2.com';
$config['s3']['key'] = 'xxx';
$config['s3']['secret'] = 'xxx';
$config['s3']['bucket'] = 'xxx';
/*------------------------------------- S3设置END -------------------------------------*/
-
key
:对应B2的keyID
-
secret
:对应B2的applicationKey
-
bucket
:对应B2的存储桶名称
region/endpoint
通过浏览B2的档案,获取到一个S3 URL地址,格式如:https://bucket.s3.us-west-002.backblazeb2.com/imgs/2022/03/28/00f925c6550c3154.jpg
那么region则为us-west-002
,endpoint则为https://s3.us-west-002.backblazeb2.com
升级
重要提醒
升级之前请备数据(包括数据库),升级之前请备份数据(包括数据库),升级之前请备份数据(包括数据库),未备份数据导致升级出现异常本人不承担任何责任。
此方法适用于ImgURL Pro(专业版),社区版(免费版)请参考社区版方法进行升级。
查看版本号
登录ImgURL后台(首页)底部可以查看当前版本号,如下截图当前版本号为v1.0,请根据自身对应版本号进行升级,注意:若没有特殊说明不可跨版本升级,比如v1.0直接跳过v1.1升级为v1.2
2.2.x升级2.3.0
- 备份好你的网站程序以及数据库(非常重要,作者不承担任何数据丢失风险)
- 下载
2.3.0
安装包imgurl-pro-2.3.x.zip
并上传到您站点根目录,解压覆盖(覆盖完毕后建议管理员后台按Ctrl + F5多刷新几次,避免缓存) - 执行
data/sql/20231109.sql
升级数据库 - 如果有使用opcache组件,请重启PHP或重启一次
php-fpm
进程 - 删除安装包
imgurl-pro-2.2.x.zip
避免被坏人下载 - 如果您之前对接了XorPay,需要在【系统设置 - 站点设置 - 支付设置】重新填写易支付/码支付的API信息
2.1.1升级2.2.0
- 备份好你的网站程序以及数据库(非常重要,作者不承担任何数据丢失风险)
- 下载
2.2.x
安装包imgurl-pro-2.2.x.zip
并上传到您站点根目录,解压覆盖(覆盖完毕后建议管理员后台按Ctrl + F5多刷新几次,避免缓存) - 执行
data/sql/20230909.sql
升级数据库 - 如果有使用opcache组件,请重启PHP或重启一次
php-fpm
进程 - 删除安装包
imgurl-pro-2.2.x.zip
避免被坏人下载 - 此版本新增了【营销设置】,请参考:ImgURL营销设置
如果您需要更新所有用户的默认存储容量,请执行以下SQL:
-- 1指的是存储容量为1GB,根据自身情况调整,执行前建议备份数据库
UPDATE img_user_policy SET s_capacity = 1;
2.1.0升级2.1.1
备份好你的网站程序以及数据库,覆盖解压替换即可。
v2.0.x升级2.1.x
- 备份好你的网站程序以及数据库(非常重要,作者不承担任何数据丢失风险)
- 下载
2.1.x
的安装包imgurl-pro-2.1.x.zip
并上传到您站点根目录,解压覆盖(覆盖完毕后建议管理员后台按Ctrl + F5多刷新几次,避免缓存) - 找到
2.1.x
源码包里面data/sql/20220515.sql
这个数据库升级文件,把他下载到你本地 - 然后选择您正在使用的imgurl数据库,并执行上面那个
20220515.sql
文件,比如phpMyadmin的做法是先选择数据库,然后点导入执行即可 - 如果有使用opcache组件,请重启PHP或重启一次
php-fpm
进程 - 删除安装包
imgurl-pro-2.1.x.zip
避免被坏蛋下载
v1.x升级v2.1.x
- 备份好你的网站程序以及数据库(非常重要,作者不承担任何数据丢失风险)
- 下载
2.1.x
的安装包imgurl-pro-2.1.x.zip
并上传到您站点根目录,解压覆盖(覆盖完毕后建议管理员后台按Ctrl + F5多刷新几次,避免缓存) - 找到
2.1.x
源码包里面data/sql/20220328.sql
和data/sql/20220515.sql
这个2个数据库升级文件,把他下载到你本地 - 然后选择您正在使用的imgurl数据库,并执行上面2个
.sql
文件,比如phpMyadmin的做法是先选择数据库,然后点导入执行即可(注意:先执行20220328.sql,然后再执行20220515.sql) - 注意
2.1.x
版本要求支持redis,否则用户功能无法使用,宝塔用户可以直接在你对应的PHP版本 - 安装扩展 - 选择redis进行安装。 - 修改站点目录下的
config.php
配置文件,在末尾追加如下配置内容:
/*-------------------------------------Redis配置信息,2022.03新增-------------------------------------*/
$config['socket_type'] = 'tcp'; //`tcp` or `unix`
// $config['socket'] = '/var/run/redis.sock'; // in case of `unix` socket type
$config['redis']['host'] = '127.0.0.1';
$config['redis']['password'] = NULL;
$config['redis']['port'] = 6379;
$config['redis']['timeout'] = 10;
/*-------------------------------------Redis配置END--------------------------------------------------*/
/*------------------------------------- S3设置 -------------------------------------*/
//请先阅读帮助文档:https://dwz.ovh/a
$config['s3']['region'] = 'us-east-1';
$config['s3']['endpoint'] = '';
$config['s3']['key'] = '';
$config['s3']['secret'] = '';
$config['s3']['bucket'] = '';
/*------------------------------------- S3设置END -------------------------------------*/
/*------------------------------------- 接口频率限制 -------------------------------------*/
//单IP,10分钟内,上传接口请求频率限制
$config['limit']['up_qps'] = 500;
//单IP,24H内,发送邮件频率
$config['limit']['mail_qps'] = 20;
//单IP,1分支内,删除接口频率限制
$config['limit']['delete_qps'] = 30;
/*------------------------------------- 接口频率限制END -------------------------------------*/
- 登录你的ImgURL管理员后台,系统设置 - 站点设置 - SMTP设置 - 配置你的SMTP发件信息,否则注册用户无法收到验证码,将无法注册。(注意:先点保存,再点发送测试)
- 打开系统设置 - 存储方案 - 设置注册用户默认存储策略,目前仅支持本地和S3,选择其中一个点保存,否则注册用户无法上传。
- 继续打开系统设置 - 上传限制 - 设置用户的初始上传数量(默认是0也就是说用户注册后无法上传),如果您希望用户注册后拥有一定的初始上传容量,在这里设置,存储容量暂时没用,可以不用管。
- 至此升级已全部完成,如有问题,请联系QQ:446199062进行反馈
补充说明:ImgURL Pro默认售后支持时间为购买日起6个月,如果超过6个月且需要提供远程技术支持的需要额外收取一定费用,敬请理解。
v1.0升级v1.1
- 先备份当前数据(包括数据库)
- 下载v1.1源码:http://soft.xiaoz.org/source/imgurl/imgurl-pro_v1.1.tar.gz 解压覆盖
- 修改
config.php
在底部添加如下代码(七牛云存储需要使用)
/*-------------------------------------七牛云设置-------------------------------------*/
//请先阅读帮助文档:https://dwz.ovh/a
$config['qiniu']['AccessKey'] = '';
$config['qiniu']['SecretKey'] = '';
$config['qiniu']['bucket'] = '';
//上传地址,参见:https://developer.qiniu.com/kodo/manual/1671/region-endpoint
$config['qiniu']['up_host'] = '';
/*-------------------------------------七牛云设置END-------------------------------------*/
v1.1升级v1.12
- 先备份当前数据(包括数据库)
- 下载v1.12源码:http://soft.xiaoz.org/source/imgurl/imgurl-pro_v1.12.tar.gz 解压覆盖
使用CDN
ImgURL支持对每个存储单独设置域名,建议对这些域名启用CDN,而不是对主站(访问域名)启用CDN,如果需要对主站(访问域名)启用CDN,请按照如下设置,否则可能无法正常使用。
CDN缓存设置
以下路径请不要设置缓存,否则无法正常使用。
- /found/*
- /admin/*
- /manage/*
- /setting/*
- /storage/*
- /api/*
其它路径可根据自身需要设置缓存。
管理维护
登录后台
ImgURL底部有个“login”按钮可以登录后台,或者访问您的域名:http://domian.com/user/login
进行登录。
上传限制
默认情况下单张图片不得超过5M,游客每天限制上传10张图片。您可以在后台 - 系统设置 - 上传限制做出修改。
- 上传数量如果为0则不允许游客上传
- 上传大小最大允许为10(Mb)
图片压缩
ImgURL使用Tinypng提供的图片压缩接口,因此需要先访问:http://tinypng.org/ 申请API
然后在【系统设置】 - 图片处理 - 图片压缩进行设置,必须填写2个,您可以用多个账号申请Tinypng key或者创建多个key填写即可。(注意:仅本地上传的图片可以压缩,其它存储类型不支持压缩)
在图片管理中可以看到压缩按钮,白色背景说明该图片还没有压缩,蓝色背景说明图片已经压缩。
图片鉴黄
ImgURL使用Moderate Content提供的API来进行图片鉴黄,因此您需要先在https://www.moderatecontent.com/ 申请API key
然后打开【系统设置】 - 图片鉴黄进行开启。
API识别无法做到100%准确,识别后的图片会被标记为可疑图片等待管理员审核,您可以在【图片管理】 - 可疑图片进行查看,如果存在误判,可点击下图中的按钮取消。
添加评论代码
ImgURL支持添加评论代码(如disqus),方法如下:
- 创建一个
application/views/user/comment.html
文件 - 然后将评论代码添加到
comment.html
这个文件 3 . 最后访问查看效果
重置密码
如果用户名或密码遗忘,可通过以下方法重置。
1.创建一个data/password.txt
文件
2.然后访问http:/domain.com/user/resetpass
根据页面提示完成重置
3.最后删除data/password.txt
文件(一定要删除这个文件,否则任何人都可以重置密码)
设置提示
首页的提示可以在后台 - 系统设置 - 站点设置 - 首页公告进行设置(支持HTML代码)
- 底部版权可以在在后台 - 系统设置 - 站点设置 - 页脚信息进行设置(支持HTML代码)
- 图片页面的提示在后台 - 系统设置 - 站点设置 - 页面提示进行设置
常见问题
为什么我上传图片后探索发现不显示我刚刚上传的图片?
探索发现仅显示游客上传的图片,如果是管理员上传的则不会显示到探索发现中。
为什么某些图片上传后Delete Link(删除链接)显示是空的?
Delete Link自始至终只会显示一次,ImgURL具有图片去重功能,也就是说假如这张图片之前已经上传过,则不会重复上传到服务器,直接从数据库返回信息,因此则不再显示Delete Link
我之前用的社区版可以升级为专业版吗?
可以,社区版使用的SQLite 3数据库,而专业版使用的MySQL数据库,数据库结构和字段都发生了变化,您购买专业版后请联系作者协助升级。
我可以更改域名授权吗?
可以,更改域名授权的规则如下。
- 假如您购买时填写的域名为
test.abc.com
,后期想更改子域名,比如更改为img.abc.com
,可以不限次更换,前往https://shop.imgurl.org/home/change_auth 自主更换授权即可。 - 假如您购买时填写的域名为
test.abc.com
,后期想更换为test.123.com
,有1次更换机会,需要联系作者手动处理。 - 也就是说更换子域名不限次,更换主域名(顶级域名)只有1次机会。
账号、密码正确,登录后提示权限不足?
如果使用的360浏览器,请切换为极速模式,或使用Google Chrome浏览器或Firefox
为什么粘贴上传的图片,命名选择了存储方式,但依然上传到了本地?
这个是已知问题,由于技术架构原因,目前粘贴上传仅支持上传到本地,后期会逐渐优化,感谢支持。
访问安装页面出现404?
这种情况通常是没有设置伪静态规则导致,请参考:配置伪静态
访问首页出现500错误?
- 检查数据库文件
data/imgurl_simple.sql
是否导入 - 检查
db.config.php
配置的数据库账号、密码是否正确 - 检查Redis扩展是否安装
插件
油猴脚本(已废弃)
ImgURL还开发了便利的油猴脚本,可在任意网页将图片上传至ImgURL,参考《使用油猴脚本(Tamper monkey)在任意网页上传图片》
ImgURL单页版(已废弃)
ImgURL单页版依赖于ImgURL后端API,纯静态页面,不需要PHP等环境,适合轻度使用,详细说明请参考:《使用ImgURL单页版将图片上传至ImgURL图床》
使用ShareX + ImgURL,截图后自动上传
将ImgURL集成到网站
通过xiaoz提供的js脚本,可实现将ImgURL集成到您自己的网站,具体参考:将ImgURL图床集成到您的网站
其它插件
开发中...敬请期待!
客户端
通过客户端将图片上传至ImgURL
ShareX上传
安装ShareX
获取ImgURL API
- 首先您需要在ImgURL注册一个账号:https://www.imgurl.org/vip/user 亦或者其它ImgURL Pro站点均可。
- 注册完毕并登录后在ImgURL用户后台找到
API地址
/UID
/Token
三个参数并记录
配置ShareX
复制下面的内容并修改为你自己的信息:
{
"Version": "13.7.0",
"Name": "ImgURL",
"DestinationType": "ImageUploader",
"RequestMethod": "POST",
"RequestURL": "https://www.imgurl.org/api/v2/upload",
"Body": "MultipartFormData",
"Arguments":
{
"uid": "xxx",
"token": "xxx"
},
"FileFormName": "file",
"URL": "$json:data.url$",
"ThumbnailURL": "$json:data.thumbnail_url$",
"DeletionURL": "$json:data.delete$",
"ErrorMessage": "$json:msg$"
}
- RequestURL:对应ImgURL API地址
- uid:改成你自己的UID
- token:改成你自己的Token
其中$json:data.url$
是返回的图片原始URL,如果您想修改为其它链接格式,参考如下:
- Markdown:

- HTML:
<img src = "$json:data.url$" />
- BBCode:
[img]$json:data.url$[/img]
修改完毕后复制上面的json内容,点导入 - 从剪贴板导入
添加一个快捷键,并按照如下图设置
效果演示
通过uTools插件上传图片
视频介绍:https://www.bilibili.com/video/BV1hY411E7vb/
ImgURL Pro已上线uTools插件,可以在uTools插件市场搜索“imgurl”进行安装。
插件配置
- 首先您需要在ImgURL注册一个账号:https://www.imgurl.org/vip/user 亦或者其它ImgURL Pro站点均可。
- 注册完毕并登录后在ImgURL用户后台找到
API地址
/UID
/Token
三个参数并记录 - 打开uTools输入关键词
imgurl
/图床
/tc
均可打开ImgURL插件,点击右下角设置按钮 - 分别填写刚刚记录的
API地址
/UID
/Token
三个参数,注意API地址只需要填写前面部分即可不需要后面的具体路径,比如用户后台查看到的地址为:https://www.imgurl.org/api/v2/upload
那么您只需要填写https://www.imgurl.org
即可。 - 最后开始上传你的图片
使用说明
点击上传框可同时最多上传3张图片,鼠标移动到图片上方会显示链接复制按钮。
您也可以点击右下角的复制按钮批量复制URL链接。
当3个队列满了之后您需要点击重置按钮清空上传队列。
管理图片
如果您需要查看已上传图片列表或删除图片,可点插件右上方的“后台管理”登录ImgURL后台进行操作。
反馈
如有问题或者建议,可以在插件市场对该插件评论反馈。
通过PicGo上传
PicGo是一款跨平台图片上传客户端,支持Windows、Linux、MacOS操作系统,支持将图片上传到多个目标,比如ImgURL、SM.MS等图床。
安装PicGo
- 前往Github:https://github.com/Molunerfinn/PicGo/releases 根据你的平台下载最新版本安装。
- 前往Node.js官网:https://nodejs.org/zh-cn/ 下载最新版Node.js安装(PicGo插件需要)
- 退出PicGo并重新打开,在插件设置中搜索“web-uploader”找到下面这个插件进行安装
获取ImgURL API
- 首先您需要在ImgURL注册一个账号:https://www.imgurl.org/vip/user 亦或者其它ImgURL Pro站点均可。
- 注册完毕并登录后在ImgURL用户后台找到
API地址
/UID
/Token
三个参数并记录,稍后需要使用
设置PicGo
打开PicGo - 图床设置 - 自定义Web图床,填写上一步获取到的API信息,如下图。
- API地址:填写ImgURL的API地址,比如:
http://imgurl.rss.ink/api/v2/upload
- POST参数名:填写
file
- JSON路径:填写
data.url
- 自定义Body:填写下面的json
{"uid":"your uid","token":"your token"}
- your uid:改成你在ImgURL获取到的UID
- your token:改成你在ImgURL获取到的Token
然后点击确定进行保存,同时你也可以将其设置为默认图床。
上传图片
PicGo支持多种上传方式,比如快捷键上传、悬浮球上传、鼠标右键上传,下面分别介绍下不同上传方式。
快捷键上传:
你在本地选择一种图片,并按Ctrl + C
后,再按Ctrl + Shift + P
可以自动将选择的图片上传到PicGo,同时自动将URL链接放到剪贴板中。
悬浮球上传
点击PicGo界面右上方的“+”按钮,会在桌面出现一个悬浮球。
然后把需要上传的图片拖到悬浮球即可。
鼠标右键上传
选中需要上传的图片,鼠标右键 - 选择“Upload pictures with PicGo”即可。
其它
Windows客户端
系统要求
- Windows 10/11
- 不支持Windows 7
下载地址
使用说明
- 将
imgurl_client_1.3.2.zip
解压到任意地方 - 双击
imgurl_client.exe
启动 - 切换到客户端系统设置
- 登录到ImgURL图床后台 - 切换到API token,找到API URL、UID、Token并填写到客户端
- 切换到客户端的“图片上传”,并找到你本地的图片文件夹,然后复制路径
- 在客户端界面“图床上传”输入刚刚复制的路径,点击“扫描并上传”即可
网站插件
ImgURL支持各种网站插件,比如苹果CMS
苹果CMS插件
ImgURL支持苹果CMS插件,前提是您已经在https://www.imgurl.org/vip/user 注册账号。
使用方法
在ImgURL后台(https://www.imgurl.org/vip/manage/mytoken) - 管理 - API token,获取“API地址、UID、Token”并记录。
下载ImgURL苹果CMS插件.zip将里面的文件上传到您苹果CMS对应目录。
然后在苹果CMS后台,保存方式选择“ImgURL Pro”,同时填写上面获取到的“API地址、UID、Token”,然后点保存。
最后同步图片进行测试。
更新日志
v1.1
- 后台增加上传图表统计
- 增加站点地图(sitemap)
- 后台增加批量删除功能
- 后台增加按图片名称筛选
- 增加七牛云存储支持
- 更新LayUI至2.5.5
- 修复探索发现BUG
- 修复图片懒加载的BUG
- API增加token验证
- 后台、前台部分细节优化
v1.0
- 支持拽拖上传、多图上传、Ctrl + V粘贴上传、URL上传
- 支持图片裁剪,自动生成缩略图
- 限制访客上传数量/限制上传大小/限制访客上传权限
- 图片压缩
- 图片鉴黄
- API支持
- 无广告
- 自定义底部版权
- 多个外部存储(本地、Backblaze B2、腾讯COS、FTP)
- MySQL数据库支持
管理维护
ImgURL Pro管理员维护手册,普通注册用户无需关注。
启用用户注册功能与用户管理
自2.0.0
版本开始支持用户注册功能,用户注册后可单独管理自己的图片,且可以对默认注册用户设置默认的上传数量,也可以单独对某个用户设置指定的上传数量。
开启用户注册
注意2.0.0
版本要求支持redis,否则用户功能无法使用,宝塔用户可以直接在你对应的PHP版本 - 安装扩展 - 选择redis进行安装。
登录你的ImgURL管理员后台,系统设置 - 站点设置 - SMTP设置 - 配置你的SMTP发件信息,否则注册用户无法收到验证码,将无法注册。
打开系统设置 - 存储方案 - 设置注册用户默认存储策略,目前仅支持本地和S3,选择其中一个点保存,否则注册用户无法上传。
注意:如果要使用S3作为存储,您需要在config.php设置S3信息,同时在后台“系统设置 - 存储方案 - S3进行启用”
继续打开系统设置 - 上传限制 - 设置用户的初始上传数量(默认是0也就是说用户注册后无法上传),如果您希望用户注册后拥有一定的初始上传容量,在这里设置,存储容量暂时没用,可以不用管。
关闭用户注册
在系统设置 - 站点设置 - 用户注册,选择关闭并保存即可。
修改指定用户的上传数量
在后台 - 系统设置 - 用户管理 - 找到用户(或者搜索用户邮箱) - 点设置。
底部有2个策略,一个扩展策略一个默认策略,如果扩展策略有效期大于当前日期,则扩展策略生效,否则默认策略生效。
禁用用户
依然在在后台 - 系统设置 - 用户管理 - 找到用户(或者搜索用户邮箱) - 点设置 - 禁用用户。
- 禁用用户后如果用户已经在浏览器登录并不会强制退出(redis缓存过期后才会自动退出,通常是30天内),但是用户无法再进行上传
- 如果用户更换IP或者更换浏览器将无法再登录
图片鉴黄
ImgURL Pro支持Moderate Content和NSFW两种鉴黄API,Moderate Content需要申请API后才能使用,NSFW API则需要自行部署,下面分别介绍下两种方式的配置和使用。
使用Moderate Content
需要在https://www.moderatecontent.com/signup使用你自己的邮箱申请API KEY,然后填写到“系统设置 - 图片处理 - 图片鉴黄 - 输入Moderate Content API KEY”,按照下面4个步骤设置。
注意:Moderate Content免费版只支持每月10000张图片,您可以多用几个邮箱申请Moderate Content API KEY,然后可填写多个key,一行一个,这样容量可以叠加。
使用NSFW API
NSFW API需要自行部署,建议NSFW API部署在ImgURL Pro的同一台服务器,这样可以使用本地回环网络访问,更加安全。
操作之前,请先确保您已经安装好了Docker,然后复制下面的命令部署nsfw_api:
docker run -d -p 127.0.0.1:5000:5000/tcp \
--env PORT=5000 \
--restart=always \
eugencepoi/nsfw_api:latest
注意:如果NSFW API不是部署在和ImgURL Pro同一台服务器,请去掉上面的127.0.0.1:
,这样您的API将被公开调用,可能存在被他人滥用的风险。
部署完毕后您可以通过curl
命令测试是否成功:
curl -X GET -H 'Content-Type: application/json' "http://127.0.0.1:5000?url=https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
如果成功,会返回类似下面的json内容:
{
"score": 0.00016061133646871895,
"url": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
}
在ImgURL Pro后台,“系统设置 - 图片处理 - 图片鉴黄”,NSFW API URL填写http://127.0.0.1:5000
,如下截图的4个步骤:
测试
设置完毕后,在ImgURL Pro前台上传页面,上传H图测试,如果识别为H图会弹出提示警告。
注意:目前没有哪家的API能做到100%完全准确,只能起到一定辅助作用,建议API + 人工审核。
后台管理
识别成功的图片会出现在“ImgURL后台 - 图片管理 - 可疑图片中”。
图片实时压缩(实验功能)
ImgURL Pro本地存储方式支持Tinypng压缩,但是存在以下3个缺陷:
- 不是实时压缩
- 依赖Tinypng API压缩,网络影响比较大,效率非常低
- 不支持其它存储方式压缩
为了解决这个问题,从ImgURL 2.x开始支持实时压缩方案,默认隐藏且不开启,该功能处于实验阶段,后期可能会有所调整,如需开启的朋友按照下面的步骤操作即可。
前提条件
- PHP已经安装imagemagick扩展,宝塔用户可以在PHP管理里面查看和安装,如下图。
- 安装pngquant(仅Linux),需要在命令行操作,方法如下:
#CentOS 7.x
yum -y install pngquant
#Debian or Ubuntu
sudo apt-get install pngquant
- 修改配置文件
config.php
在底部加入如下内容:
//开启压缩,默认不开放
$config['compress']['switch'] = TRUE;
//压缩质量,数字越小,压缩效果越好,但是速度越慢,建议配置在70-80
$config['compress']['quality'] = 80;
//pngquant路径,可以先用which pngquant命令查看是否是下面的路径,如果不是,则修改
$config['compress']['pngquant'] = '/usr/bin/pngquant';
- 开启PHP的
exec
函数,宝塔用户可以在PHP管理 - 禁用函数 - 找到exec
,并将其删除 - 最后重启PHP,上传图片对比图片大小查看效果
注意
- 使用此功能建议服务器最低配置为2C4G
- 该功能仅支持压缩
.jpg/.png
,其它格式暂不支持
自定义导航
自2.0.2
版本开始支持自定义导航,设置方法如下。
自定义游客导航菜单
未登录情况下,用户看到的菜单界面如下,其中红色方框中标出的支持自定义,未标出的则不支持自定义。
在ImgURL Pro后台“系统设置 - 站点设置 - 自定义导航 - 游客顶部导航代码”进行设置,填写以下HTML代码(请根据自身情况修改):
<li class="layui-nav-item"><a href="/found"><i class="layui-icon layui-icon-search"></i> 探索发现</a></li>
<li class="layui-nav-item"><a href="https://vip.imgurl.org/page/vip" rel="nofollow" target="_blank"><i class="layui-icon layui-icon-fire" style="color:#FF5722;"></i> VIP服务</a></li>
<li class="layui-nav-item"><a href="https://www.xiaoz.me/archives/13225" rel="nofollow" target="_blank"><i class="layui-icon layui-icon-cart"></i> 购买专业版</a></li>
<li class="layui-nav-item"><a href="https://dwz.ovh/vwok9" title="通过客户端上传" rel="nofollow" target="_blank"><i class="layui-icon layui-icon-cellphone-fine"></i> 客户端</a></li>
修改并保存后显示效果如下。
注意:
- 自定义导航部分手机设备访问会被自动隐藏
- 如果您需要修改或自定义字体图标,可以参考LayUI字体图标
自定义用户顶部导航代码
此部分设置对已经注册账号的用户生效,在ImgURL Pro后台“系统设置 - 站点设置 - 自定义导航 - 用户顶部导航代码”进行设置,填写以下HTML代码(请根据自身情况修改):
<menu-item name="1">
<a href="/found"><Icon type="md-search" /></Icon> 探索发现</a>
</menu-item>
<menu-item name="2" class="i-xs-hide">
<a href="https://vip.imgurl.org/page/vip"><Icon type="md-flame" /></Icon> VIP服务</a>
</menu-item>
<menu-item name="3" class="i-xs-hide">
<a href="https://www.xiaoz.me/archives/13225" target = "_blank" rel = "nofollow"><Icon type="ios-card" /></Icon> 购买专业版</a>
</menu-item>
<menu-item name="3" class="i-xs-hide">
<a href="https://dwz.ovh/vwok9" title = "通过客户端上传" target = "_blank" rel = "nofollow"><Icon type="ios-laptop" /></Icon> 客户端</a>
</menu-item>
注意:
- 添加
class="i-xs-hide"
属性后则这个导航会在手机访问的情况下隐藏,如果不添加则不会隐藏,由于手机宽度有限,建议这部分仅一个菜单不隐藏,其余全部添加隐藏属性 - 如果您需要自定义字体图片,请参考:iView Icon 图标
其它设置
举报地址设置
自2.1.0
版本开始,新增举报地址设置,举报地址需要自行设置第三方表单,比如Zoho表单、金数据、表单大师等。
设置后图片页面会出现一个举报地址,效果如下:
Zoho表单(推荐)
Zoho表单分国内版和海外版,请根据自己的用户区域选择,国内用户建议国内版,海外用户建议海外版。
- 国内版注册地址:https://store.zoho.com.cn/
- 海外版注册地址:https://go.zoho.com/qqV
国内版免费额度如下(能满足大部分个人用户需要):
注册后创建一个表单 - 按照下图构建一个表单。
继续打开设置 - 字段别名 - 别名设置为:
- 您的邮箱:email
- 图片地址:url
如果不设置字段别名,举报的时候没法自动填充邮箱地址和图片地址,需要用户手动,体验不好。
其它选项根据自己的需要和喜好设置即可。
然后点击“共享”获取表单永久链接,填写到“ImgURL后台 - 系统设置 - 站点设置 - 其它设置 - 填写举报地址”
其它表单
其它表单设置方法都差不多,大家根据自己的喜好设置即可。
广告设置
广告代码
ImgURL广告设置需要填写HTML代码,下方是一段演示HTML代码,请根据你自身情况进行修改调整。
<a href="https://www.baidu.com" title="星光电脑,联系:15528767353(微信同号),全国发货。" target = "_blank"><img src="https://cdn.xiaoz.me/wp-content/uploads/2022/03/20220311122930.jpg" /></a>
广告位置
页面广告1-4指的是/pages/xxx
这类页面右侧的广告,如下图所示:
图片页面广告1指的是图片详情页,右侧的广告,如下图所示:
营销设置
自2.3.0
版本开始,ImgURL Pro已对接支付功能,支持对接易支付/码支付,您亦可以选择继续生成兑换码的方式配合自己的发卡网站使用。
添加套餐
在ImgURL后台【营销管理 - 套餐管理】进行添加套餐操作,如下图。
- 价格:实际出售价格
- 原价:未折扣的价格(非实际价格)
- 存储容量:单位是GB,最低为1GB
- 时常:单位是月,最低为1个月
- 权重:排序使用,权重值越大,套餐越靠前
- 状态:管理套餐上线或下线
- 套餐描述:自定义套餐额外描述,会展示给用户查看,支持HTML内容
套餐添加完毕后,用户后台界面【购买套餐】可以看到管理员添加的套餐列表。
支付设置
ImgURL后台配置
进入ImgURL后台【系统设置 - 站点设置 - 支付设置】
- 接口地址:易支付接口地址,末尾需要带
/
- 商户ID:易支付商户ID,一般位数字ID
- 商户密钥:易支付商户密钥
- 回调域名:一般位您网站域名,需要包含
http://
或https://
,末尾不需要带有/
- 支付宝接口:如果开启,则用户支持支付宝支付
- 微信支付:如果开启,则用户支持微信支付
测试下单
以上设置完毕后,您可以添加一个测试套餐,价格随意。然后注册一个普通用户,去购买套餐测试,购买成功后会给用户发送一封邮件通知(前提是站点设置 - SMTP设置正确)
补充说明:
- 套餐购买成功后是实时生效的
- 如果用户存在扩展容量套餐未到期的情况下无法下单
安装
ImgURL Pro安装方法
Docker安装ImgURL Pro(实验阶段)
通过Docker方式安装ImgURL Pro,请确保您已经安装了Docker以及docker-compose,建议通过命令行操作。(目前安装较为繁琐,后续的版本会镜像流程优化)
下载部署文件
下载后解压到您需要存放的目录,命令行解压命令为:
#解压
unzip main.zip
#进入目录
cd docker-imgurl
设置MySQL密码
编辑docker-compose.yaml
这个文件,找到里面的这一行:
MYSQL_ROOT_PASSWORD: 95KeVtSp6MBC
将95KeVtSp6MBC
修改为您自己的MySQL密码。(注意:请务必修改这个密码)该密码是MySQL root密码,后续需要使用。
新建数据库
输入http://IP:8080/phpMyAdmin
打开phpMyAdmin,会看到phpMyAdmin登录界面,如下截图。
- 服务器:填写
mysql57
- 用户名:填写
root
- 密码:您上一个步骤中设置的MySQL root密码
点击“账户 - 新增用户账户”
按照下方截图填写数据库相关信息
最后点左下方的执行按钮进行创建数据库用户名和密码。
导入数据库
购买ImgURL Pro后,邮件里面会提供ImgURL Pro源码,找到里面的data/imgurl_simple.sql
这个文件,可以先将这个文件保存到本地。
然后选中您刚刚新建的数据库(我这里数据库是imgurl),然后选择导入。
选择imgurl_simple.sql
这个文件进行导入。
安装ImgURL Pro
将下载好的ImgURL Pro源码imgurl-pro-2.x.x.zip
上传到部署文件的imgurl目录下,然后解压。
#进入目录
cd imgurl
#解压
unzip imgurl*.zip
#删除压缩包
rm -rf *.zip
接下来需要复制2个配置文件:
-
config.simple.php
复制为config.php
-
db.config.simple.php
复制为db.config.php
命令行操作方式为:
cp config.simple.php config.php
cp db.config.simple.php db.config.php
继续编辑config.php
这个配置文件,填入您邮箱中的key
就行编辑db.config.php
填写数据库信息,需要注意以下几个地方:
'hostname' => 'mysql57',
'username' => 'imgurl',
'password' => 'xxxx',
'database' => 'imgurl',
- hostname:这里固定为
mysql57
,不要填写localhost
- username:您上面步骤中创建的数据库用户名
- password:您上面步骤中创建的MySQL密码(非MySQL root密码)
- database:您上面步骤中创建的数据库名
将邮件里面的xxx.txt
附件上传到imgurl/data
目录下(注意:不要编辑和修改这个文件)
在imgurl这个目录下,执行下面的命令解压补丁并覆盖:
#在imgurl这个目录下执行
unzip -o patch.zip
将您的域名解析到您服务器IP,然后访问http://你的域名:8880
进行访问安装。
API
ImgURL Pro API说明文档。
上传API
如果您还没有注册ImgURL免费图床,请先前往https://www.imgurl.org/vip/user#user=register 注册您的账号。
上传接口
- 接口地址:https://www.imgurl.org/api/v2/upload
- 请求类型:POST
注意:如果您的账号不是在imgurl.org注册,请改成对应服务商的域名。
请求参数
参数名 | 类型 | 是否必须 | 参数说明 |
---|---|---|---|
file | file | 是 | 支持jpg/jgeg/png/gif/bmp/webp格式 |
uid | string | 是 | 通过ImgURL后台获取 |
token | string | 是 | 通过ImgURL后台获取 |
album_id | int | 否 | 相册ID |
获取UID及Token
注册并登录ImgURL后,在用户后台 - 管理 - API Token查看您的UID
首次使用需要点击生成按钮以生成Token
请妥善保管您的Token,如果Token遭到泄露,可点击按钮更换。
返回值
如果请求成功,返回结果如下:
{
"code": 200,
"msg": "",
"data":
{
"relative_path": "imgs\/2022\/03\/30\/f4a2eeb2689f9c19.jpg",
"url": "https:\/\/s3.bmp.ovh\/imgs\/2022\/03\/30\/f4a2eeb2689f9c19.jpg",
"thumbnail_url": "https:\/\/s3.bmp.ovh\/imgs\/2022\/03\/30\/f4a2eeb2689f9c19_thumb.jpg",
"image_width": 1080,
"image_height": 810,
"client_name": "sanc1.jpg",
"id": 1221739,
"imgid": "f4a2eeb2689f9c19",
"delete": "https:\/\/imgurl.org\/delete\/649cbe0133f7ef95"
}
}
参数名 | 类型 | 参数说明 |
---|---|---|
code | int | 状态码,200:成功,-1000:失败 |
msg | string | 如果成功返回空,如果失败则返回错误信息 |
data | int | 图像数据,各参数含义如下 |
data.relative_path | string | 图片相对路径 |
data.url | string | 图片URL地址 |
data.thumbnail_url | string | 图片缩略图URL,如果没有生成缩略图,则和data.url 地址相同 |
data.image_width | float | 图片宽 |
data.image_height | int | 图片高 |
data.client_name | string | 图片原始名称 |
data.id | int | 图片序号 |
data.imgid | string(16) | 图片唯一ID |
data.delete | string | 图片删除地址,访问改地址图片将被删除 |
如果失败,返回结果为:
{
"code": -1000,
"msg": "上传失败,错误原因:The file you are attempting to upload is larger than the permitted size.",
"data": ""
}
-
code
: 状态码,失败时固定返回-1000
-
msg
: 失败原因 -
data
: 失败时固定返回空
演示代码
以下代码仅作为上传接口演示,正式环境中请勿使用,因为token信息明文保存在网页中,存在极大的安全风险。
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>ImgURL上传测试</title>
<meta name="generator" content="EverEdit" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<body>
<form enctype="multipart/form-data" method="post" action="https://www.imgurl.org/api/v2/upload" id="upform">
<input type="text" name="uid" value = "您的UID" hidden>
<input type="text" name="token" value = "您的Token" hidden>
<input type="file" name="file">
<input type="submit" id="btn" value="开始上传" class="btn">
</form>
</body>
</html>
获取相册列表
获取相册列表
- 接口地址:
/api/v2/albums
- 请求类型:GET/POST
- 数据类型:
form-data
注意:如果您的账号不是在imgurl.org注册,请改成对应服务商的域名。
请求参数
参数名 | 类型 | 是否必须 | 参数说明 |
---|---|---|---|
uid | string | 是 | 通过ImgURL后台获取 |
token | string | 是 | 通过ImgURL后台获取 |
请求成功
请求成功返回的JSON格式如下
{
"code": 200,
"msg": "",
"data": [
{
"album_id": "5",
"user_email": "xxx@qq.com",
"user_uid": "xxx",
"name": "大苏打1",
"description": "大苏打1",
"create_date": "2023-11-02 16:03:57",
"update_date": "2023-11-02 16:56:16",
"is_private": "1",
"password": null,
"cover": null
},
{
"album_id": "4",
"user_email": "xxx@qq.com",
"user_uid": "xxx",
"name": "你好啊",
"description": "你好啊",
"create_date": "2023-11-02 16:03:37",
"update_date": "2023-11-02 16:03:37",
"is_private": "1",
"password": null,
"cover": null
}
]
}
- code:状态码:200视为成功,其余为失败
- msg:错误消息,成功时为空,否则返回具体错误
- data.id:相册ID
- data.name:相册名称
请求失败
{
"code": -1000,
"msg": "您没有权限,请先登录!",
"data": ""
}