{"id":13794383,"url":"https://github.com/Redns/picgo-plugin-easypic","last_synced_at":"2025-05-12T21:31:21.129Z","repository":{"id":57323670,"uuid":"457713835","full_name":"Redns/picgo-plugin-easypic","owner":"Redns","description":"An uploader for easypic.","archived":false,"fork":false,"pushed_at":"2024-03-15T15:21:22.000Z","size":29,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-03T10:52:26.159Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Redns.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-02-10T09:32:16.000Z","updated_at":"2025-03-07T16:29:24.000Z","dependencies_parsed_at":"2024-04-06T10:43:24.794Z","dependency_job_id":null,"html_url":"https://github.com/Redns/picgo-plugin-easypic","commit_stats":{"total_commits":11,"total_committers":2,"mean_commits":5.5,"dds":"0.18181818181818177","last_synced_commit":"f32cb749ae346140e475e684ce1c144d1da596ad"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Redns%2Fpicgo-plugin-easypic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Redns%2Fpicgo-plugin-easypic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Redns%2Fpicgo-plugin-easypic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Redns%2Fpicgo-plugin-easypic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Redns","download_url":"https://codeload.github.com/Redns/picgo-plugin-easypic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252618395,"owners_count":21777231,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T23:00:39.984Z","updated_at":"2025-05-12T21:31:20.841Z","avatar_url":"https://github.com/Redns.png","language":"JavaScript","funding_links":[],"categories":[":rocket: Plugin for PicGo"],"sub_categories":[],"readme":"# picgo-plugin-easypic\n\n## 简介\n\n[My-Easy-Pic-Bed](https://github.com/fslongjin/My-Easy-Pic-Bed) 为国内开发者 [fslongjin](https://github.com/fslongjin) 创建的开源、便捷、高效的图床服务，您可以将该服务部署在 `云服务器`、`个人主机`、`NAS` 等设备上，之后您便可以将图片上传至相应的服务器并获取图片链接。\n\n## 环境搭建\n\n下面我将演示如何在 `本地主机` 上搭建环境，若您要在 `云服务器` 和 `其它环境` 上搭建，这些操作也同样适用。\n\n1. 前往 [My-Easy-Pic-Bed](https://github.com/fslongjin/My-Easy-Pic-Bed) 下载图床服务\n\n   ![image-20220210201146087](https://i.postimg.cc/mDGVmb1x/202202102011195.png)\n\n2. 将压缩包解压后放在你的服务器中，解压后文件如图\n\n   ![image-20220210201042704](https://i.postimg.cc/Z54bz3k0/202202102010782.png)\n\n3. 可在`config.ini`中设置端口号和图片最大尺寸限制\n\n   ```ini\n   [strings]\n   running_domain = 0.0.0.0\t\n   \n   \n   [ints]\n   max_length = 10\t\t// 最大尺寸为10M\n   port = 9999\t\t\t// 端口号为9999\n   ```\n\n4. 为正常使用该插件请修改 `app.py` 代码，具体参见 [图片链接无法访问](/issues/1)\n\n   ```python\n   import os\n   from flask import Flask, flash, request, redirect, url_for, render_template, current_app\n   from werkzeug.utils import secure_filename\n   from flask import send_from_directory\n   import random, time\n   import db\n   import getConfig as gcf\n   \n   from flask.cli import with_appcontext\n   \n   cf = gcf.get_config()\n   \n   allowed_extensions = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'}\n   upload_folder = os.path.join(os.getcwd(), 'pics')\n   print(upload_folder)\n   app = Flask(__name__, instance_relative_config=True)\n   \n   \n   def allowed_file(filename):\n       return '.' in filename and filename.rsplit('.', 1)[1].lower() in allowed_extensions\n   \n   \n   @app.route('/', methods=['POST', 'GET'] )\n   def upload_file():\n       if request.method == 'POST':\n           # 检查post请求中是否有文件\n           if 'file' not in request.files:\n               flash('你没有上传文件！')\n               return redirect(request.url)\n           file = request.files['file']\n           print(file)\n           if file.filename == '':\n               flash('你没有选择文件！')\n               return redirect(request.url)\n           if file and allowed_file(file.filename):\n               filename = file.filename\n               try:\n                   file.save(os.path.join(upload_folder, filename))\n                   database = db.get_db()\n                   database.execute(\n                       'INSERT INTO pics (filename)'\n                       ' VALUES (?)',\n                       (filename,)\n                   )\n                   database.commit()\n                   if app.config['running_port'] != 80:\n                       flash(app.config['running_domain'] + ':' + str(app.config['running_port']) + url_for('uploaded_file', filename=filename))\n                   else:\n                       flash(app.config['running_domain'] + url_for('uploaded_file', filename=filename))\n               except Exception as e:\n                   flash('出现错误！')\n                   print(e.args)\n   \n               return redirect(url_for('upload_file'))\n           else:\n               flash('不被服务器支持的文件！')\n               return redirect(url_for('upload_file'))\n       database = db.get_db()\n       pcnum = database.execute(\"SELECT Count(*) FROM pics\").fetchone()[0]\n       print(pcnum)\n   \n       return render_template('bs_index.html', pic_num=pcnum)\n   \n   \n   @app.route('/uploads/\u003cfilename\u003e')\n   def uploaded_file(filename):\n       return send_from_directory(app.config['UPLOAD_FOLDER'], filename)\n   \n   \n   if __name__ == '__main__':\n   \n       app.config['UPLOAD_FOLDER'] = upload_folder\n       app.config['running_domain'] = cf['running_domain']\n       app.config['running_port'] = cf['port']\n       app.config['MAX_CONTENT_LENGTH'] = 1024 * 1024 * int(cf['max_length'])\n       app.config.from_mapping(\n           SECRET_KEY='dgvbv43@$ewedc',\n           DATABASE=os.path.join(app.instance_path, 'my-easy-pic-bed.sqlite'),\n       )\n       # ensure the instance folder exists\n       try:\n           os.makedirs(app.instance_path)\n       except OSError:\n           pass\n   \n       try:\n           os.mkdir(upload_folder)\n       except Exception as e:\n           pass\n   \n       app.run(debug=False, host=app.config['running_domain'], port=app.config['running_port'])\n   ```\n\n4. 双击 `startProgram.exe` 启动图床服务\n\n   ![image-20220210182759058](https://gitee.com/msylj/images/raw/master/202202101827212.png)\n\n   ![image-20220210194816559](https://i.postimg.cc/Z5zph9RQ/202202101948652.png)\n\n5. `GUI` 搜索下载 `easypic`\n\n   ![image-20220210194913624](https://i.postimg.cc/NjtDkC1L/202202101949679.png)\n\n6. 根据实际修改相关设置\n\n   ![image-20220210195011555](https://i.postimg.cc/T3QVqddH/202202101950610.png)\n\n   - `服务器IP`：部署图床服务的服务器IP，若部署在本机则为127.0.0.1\n   - `端口号`：config.ini中设置的端口号，默认80\n\n7. 点击确定，设置完成！\n\n## Q \u0026 A\n\n### 1.如何查看本机IP？\n\n1. 键盘按下`win + r`，输入`cmd`\n\n   ![image-20220210195431387](https://i.postimg.cc/6Q5DYpd7/202202101954425.png)\n\n2. 输入`ipconfig`，回车\n\n   ![image-20220210195552474](https://i.postimg.cc/mg0HSPxj/202202101955551.png)\n\n3. 该`Ipv4地址`即为服务器IP地址\n\n### 2.图片的具体存储位置？\n\n所有图片均存储于 `解压根目录/pics`\n\n### 3.其它上传方式？\n\n1. 浏览器输入`http://{ip}:{port}`\n\n![image-20220210195952690](https://i.postimg.cc/2y2Hq4K2/202202101959436.png)\n\n2. 选择要上传的文件后点击`开始上传`即可\n\n### 4.如何在运行图床服务时不显示终端？\n\n在压缩包根目录下有两个批处理命令 `start.bat` 和 `stop.bat`，双击 `start.bat` 即可运行图床服务而不弹出终端，双击 `stop.bat` 即可关闭图床服务。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRedns%2Fpicgo-plugin-easypic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRedns%2Fpicgo-plugin-easypic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRedns%2Fpicgo-plugin-easypic/lists"}