找到
1
篇与
免费图床
相关的结果
-
🚨零成本打造永久不炸机的图床 API 前言:为什么要自建? 你是不是也遇到过这种情况: 博客背景图用了别人的免费随机 API,结果某天打开博客,背景一片空白,或者直接弹出一个大大的 Error 1033? 免费的永远是最贵的。 别人的服务器随时可能炸机、跑路,或者因为流量太大而开启防盗链。 既然我们手里有 Oracle ARM (4核 24G内存 100G硬盘) 这种“神机”,硬盘大、性能强,只做代理或建站未免有点太浪费了,为什么不自己搭建一个专属的随机图库呢? 自建优势: 永久稳定:服务器在自己手里,想开多久开多久。 全球加速:配合 Cloudflare Tunnel,国内访问速度飞快,晚高峰也不虚。 内容可控:想看二次元、风景还是小姐姐,全凭你心情,不再看别人脸色。 准备工作 VPS 一台:推荐 Oracle Cloud ARM 实例。 安装好 宝塔面板。没有安装的,使用下面的代码一键安装 if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec 域名一个:托管在 Cloudflare 上。 Cloudflare 账号:用于配置内网穿透加速。 第一步:在宝塔搭建“图库基地” 我们需要一个网站环境来运行简单的 PHP 代码。 登录 VPS 的 宝塔面板。 2026-01-26_22-13-58.webp图片 点击左侧菜单的 【网站】 -> 【添加站点】。 2026-01-26_22-14-38.webp图片 填写信息: 域名:填一个你想用的二级域名,比如 api.yourdomain.com。 PHP版本:选择 PHP-7.4 或更高(需安装 fileinfo 扩展)。 数据库:选择 不创建(用不上)。 2026-01-26_22-15-33.webp图片 点击 【确定】。 第二步:部署核心“发牌员”代码 我们需要一段代码,当用户访问时,它能自动从文件夹里“抽”一张图发给用户。 在网站列表中,点击刚才创建的网站根目录(例如 /www/wwwroot/api.yourdomain.com/)。 2026-01-26_22-20-08.webp图片 删除目录下默认的 全部文件。 2026-01-26_22-33-12.webp图片 新建文件,命名为 index.php。 2026-01-26_22-34-15.webp图片 2026-01-26_22-34-40.webp图片 双击编辑,复制粘贴以下代码: <?php // ================= 配置区 ================= // 图片存放的主文件夹 $image_folder = 'image'; // ========================================= // 智能识别:如果是手机访问,优先去 mobile 文件夹找竖屏图 // 如果是电脑访问,去 pc 文件夹找横屏图 function isMobile() { if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false) { return true; } return false; } // 路径逻辑 $target_dir = isMobile() ? $image_folder . '/mobile' : $image_folder . '/pc'; // 扫描图片 (支持 jpg, png, gif, webp) $img_array = glob($target_dir . '/*.{gif,jpg,png,jpeg,webp}', GLOB_BRACE); // 容错处理:如果对应文件夹没图,就去另一个文件夹借一张,防止报错 if(count($img_array) == 0) { $backup_dir = isMobile() ? $image_folder . '/pc' : $image_folder . '/mobile'; $img_array = glob($backup_dir . '/*.{gif,jpg,png,jpeg,webp}', GLOB_BRACE); } // 如果还是没图,那就没办法了 if(count($img_array) == 0) { die('图库空空如也,请先上传图片!'); } // 随机抽取一张 $img_path = $img_array[array_rand($img_array)]; // 输出图片头信息,伪装成一张静态图片 $mime = mime_content_type($img_path); header("Content-Type: $mime"); // 禁止浏览器缓存,保证每次刷新都能看到新老婆 header("Cache-Control: no-cache, no-store, must-revalidate"); header("Pragma: no-cache"); header("Expires: 0"); // 输出图片内容 readfile($img_path); ?> 创建存放目录: 在根目录下新建文件夹 image。 2026-01-26_22-36-33.webp图片 在 image 里新建两个文件夹:pc (放横屏图) 和 mobile (放竖屏图)。 2026-01-26_22-37-44.webp图片 第三步:批量抓取壁纸 手动上传太累了,我们让服务器自己去网上“进货”。这里提供一个抓取 360壁纸库 的脚本。 点击宝塔左侧 【计划任务】。 添加任务: 类型:Shell 脚本。 名称:图库自动进货。 执行周期:建议 每天 执行一次。 2026-01-26_22-50-46.webp图片 脚本内容(直接复制): # ------------------ 自动抓图脚本 ------------------ cat > /tmp/crawl.py <<EOF import requests import os import time # === 修改这里:你的图片保存路径 === # 电脑壁纸存到 pc 目录 SAVE_DIR = "/www/wwwroot/api.yourdomain.com/image/pc" # ============================== # 360壁纸接口 (36=4K分类, 6=美女, 9=风景) # 这里设置下载 50 张 美女壁纸 URL = "http://wallpaper.apc.360.cn/index.php?c=WallPaper&a=getAppsByOrder&order=create_time&start=0&count=50&from=360chrome&cid=6" if not os.path.exists(SAVE_DIR): os.makedirs(SAVE_DIR) try: print("正在连接图库...") res = requests.get(URL, timeout=10).json() count = 0 for item in res.get('data', []): img_url = item.get('url') if not img_url: continue file_name = img_url.split('/')[-1] save_path = os.path.join(SAVE_DIR, file_name) if not os.path.exists(save_path): try: content = requests.get(img_url, timeout=10).content with open(save_path, 'wb') as f: f.write(content) count += 1 print(f"下载成功: {file_name}") time.sleep(0.2) # 温柔一点 except: print("下载失败,跳过") else: print("已存在,跳过") print(f"任务完成!本次入库 {count} 张。") except Exception as e: print(f"出错: {e}") EOF # 运行爬虫 python3 /tmp/crawl.py # ------------------------------------------------再添加一个竖屏的,这次抓取wallhaven的高质量图片, 2026-01-26_22-51-45.webp图片 脚本内容: cat > /tmp/crawl_mobile_wallhaven.py <<EOF import requests import os import time # === 存到 mobile 文件夹 === SAVE_DIR = "/www/wwwroot/api.yourdomain.com/image/mobile" # ======================== # Wallhaven API 参数解析: # categories=001 (只抓人物) # purity=010 (只抓性感/Sketchy,不色情也不普通) # ratios=9x16,10x16 (只抓竖屏!关键!) # sorting=random (随机) API_URL = "https://wallhaven.cc/api/v1/search?categories=001&purity=010&ratios=9x16,10x16&sorting=random&seed={}" if not os.path.exists(SAVE_DIR): os.makedirs(SAVE_DIR) try: # 随机种子 seed = str(time.time()) target_url = API_URL.format(seed) print("正在请求 Wallhaven (竖屏性感模式)...") headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)'} res = requests.get(target_url, headers=headers, timeout=15) data = res.json() count = 0 for item in data['data']: img_url = item['path'] file_name = img_url.split('/')[-1] save_path = os.path.join(SAVE_DIR, file_name) if not os.path.exists(save_path): print(f"下载: {file_name}") try: img_data = requests.get(img_url, headers=headers, timeout=20).content with open(save_path, 'wb') as f: f.write(img_data) count += 1 time.sleep(1.5) # Wallhaven 限制严格,慢点抓 except: pass print(f"任务完成,入库 {count} 张竖屏美图。") except Exception as e: print(f"出错: {e}") EOF python3 /tmp/crawl_mobile_wallhaven.py(注:请将上面两段代码中api.yourdomain.com的yourdomain替换为自己的域名。) 点击 【执行】 一次。稍等片刻,去 image/pc 文件夹里看看,是不是已经塞满了高清壁纸? 2026-01-26_22-46-02.webp图片 可以看到,已经有不少图片了。现在再去执行另一个脚本,这样不管横屏、竖屏就都有图片了。 第四步:接入 Cloudflare Tunnel 加速 Oracle 的直连线路在晚高峰可能会丢包、卡顿。为了让我们的 API 加载如丝般顺滑,我们要把它挂载到 Cloudflare Tunnel 上。 这一步不需要在 VPS 上敲命令,只需要在 Cloudflare 网页后台操作。 登录 Cloudflare 面板,点击左侧菜单中的 Zero trust。 2026-01-26_22-56-11.webp图片 点击左侧菜单 网络 -> 连接器。 2026-01-26_22-59-25.webp图片 创建隧道,名字随便取 2026-01-26_23-01-47.webp图片 2026-01-26_23-02-09.webp图片 2026-01-26_23-02-31.webp图片 找到刚创建的隧道,点击右侧的三个点 -> Configure (配置)。 2026-01-26_23-06-46.webp图片 点击上方的 已发布应用程序路由 标签页。 点击 添加已发布应用程序路由 按钮。 2026-01-26_23-08-04.webp图片 重点配置如下: Subdomain (子域名):填 api (对应你刚才建站的 api.yourdomain.com)。 Domain (域名):在下拉框选择你的主域名。 Path (路径):留空不填。 Service (服务): Type: 选择 HTTP。 URL: 填写 localhost:80。 (解释:因为宝塔建立的网站默认监听 80 端口,Tunnel 会把来自公网的请求转发给本地的 80 端口,也就是你的图床网站。) 2026-01-26_23-09-02.webp图片 点击右下角的 保存。 选择菜单中的概述,接下来使用xshell、putty等ssh工具登录VPS,让vps连接刚建立的隧道。 (VPS建议使用debian或ubuntu系统) 2026-01-26_23-16-37.webp图片 2026-01-26_23-17-13.webp图片 请按顺序复制到VPS上运行。这样隧道就算搞定了! 现在,全球的 Cloudflare 节点都在为你的图床提供 CDN 加速。 第五步:享受成果 现在,打开浏览器,访问: https://api.yourdomain.com/ 电脑访问:你会看到一张横屏的高清壁纸。 手机访问:你会看到一张适配手机的竖屏壁纸。 刷新一下:图片变了! 如何使用? 作为博客背景(CSS): body { background-image: url('https://api.yourdomain.com/'); background-size: cover; } 作为论坛签名(Markdown):  总结 通过这个方案,我们充分利用了: Oracle VPS 的存储空间(存几万张图都没问题)。 宝塔面板 的便捷管理(脚本自动抓取)。 Cloudflare Tunnel 的全球加速(隐藏真实 IP,防攻击,速度快)。 从此,你拥有了一个完全属于自己的、永不关停的随机图库。快去试试吧! 版权声明:本文由 赛博61区 原创发布,转载请注明出处。