1 Star 0 Fork 3

Uber Endung / PicHoro

forked from 萌萌哒赫萝 / PicHoro 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

PicHoro

  一款基于flutter的手机端云存储平台/图床管理和文件上传/下载工具,最新版本V2.2.4,与PicGo配置互通,可直接扫码导入,主要功能包括云存储/图床/云服务器平台,以及网盘管理(通过Alist),文件上传和下载管理,以及各种格式的链接分享。

  支持多种图片/PDF/文本文件/音视频的在线预览和播放,具体支持的格式请查看支持的格式列表

桌面端如果也希望进行图床管理,推荐使用我的另一个项目PicListhttps://github.com/Kuingsmile/PicList

  项目介绍和配置手册网址:

  https://pichoro.horosama.com

  目前已支持如下图床:

  • 兰空图床V2 (上传/相册-V1.00,文件管理-V1.87)
  • SM.MS (上传/相册-V1.41,文件管理-V1.81)
  • Github (上传/相册-V1.55,文件管理-V1.89)
  • Imgur (上传/相册-V1.60,文件管理-V1.90)
  • 七牛云存储 (上传/相册-V1.65,文件管理-V1.86)
  • 腾讯云COS V5 (上传/相册-V1.70,文件管理-V1.80)
  • 阿里云OSS (上传/相册-V1.75,文件管理-V1.84)
  • 又拍云存储 (上传/相册-V1.75,文件管理-V1.85)
  • FTP-SSH/SFTP (上传/相册-V1.90,文件管理-V1.90)
  • 兼容S3 API接口的平台 (上传/相册-V1.91,文件管理-V1.91)
  • Alist V3 (上传/相册-V1.96,文件管理-V1.96)
  • WebDav (上传/相册-V1.97,文件管理-V1.97)

特色功能

  • 支持直接管理云存储/图床,包括新建/删除/修改存储桶,创建/删除目录和文件,上传和下载文件和照片等
  • 可通过Alist V3或WebDav管理多种网盘
  • 支持图片压缩功能,可压缩为webp/jpg/png格式
  • 支持预览多种格式的文件,包括图片/PDF/文本文件/音视频等
  • 支持SSH/SFTP,可视化管理文件,内置SSH终端可直接管理云服务器
  • 支持扫描二维码将PicGo(v2.3.0-beta.2以上版本)配置文件直接导入PicHoro
  • 每种图床支持保存最多26个备用配置,可快速切换备用配置为主配置
  • 连续上传模式,相机拍照后自动上传然后返回拍照页面,可连续拍照上传
  • 可导入剪贴板中的网络图片链接,同时使用换行符分割多个链接可批量导入
  • 上传图片后自动复制链接到剪贴板,多图上传时全部复制
  • 支持自定义复制到剪贴板的链接格式,占位符与Picgo一致
  • 上传时可对文件重命名,目前有时间戳,随机字符串和自定义重命名三种方式,自定义重命名可使用多种占位符,如uuid,时间戳,md5等
  • 相册分图床显示,支持多选管理,复制多张图片链接或删除
  • 支持将PicHoro的配置导出至剪贴板,导出格式与PicGo配置文件相同,可直接导入PicGo
  • 可查看和导出软件日志,快捷查找问题和报告bug

文件预览支持

平台 图片 PDF 文本文件 视频
Alist
阿里云
S3
腾讯云
又拍云
七牛云
WebDav
FTP
Github
Imgur
兰空
SM.MS

下载

安卓

Github下载地址 Github release

我的个人网站提供的最新版本下载地址 https://pichoro.msq.pub/PicHoro_V2.2.4.apk

IOS

由于个人没有Mac和开发者账号,暂时无法提供IOS版本,如果有人愿意帮忙开发IOS版本,可以联系我,我会提供相关的技术支持。

应用截图

最近更新

  详细更新日志请查看更新日志

2024-02-21 V2.2.4

  • 新增:七牛云新增亚太-河内区域支持
  • 新增:优化了github用户名的判断逻辑
  • 修复:修复了七牛云检查配置时,即使配置正确也会提示错误的问题

2023-11-25 V2.2.3

  • 新增: 现在支持为alist设置网址拼接路径
  • 新增: 现在支持从文件管理器分享图片快速启动PicHoro
  • 修复: 修复了兰空图床配置项相册id没有正常生效的问题
  • 修复了视频无法预览播放的问题

开发交流

开发进度可以查看 Projects,会同步更新开发进度。

欢迎加入 Github讨论区 与我交流。

遇到Bug或有好的建议可以在 Github Issues 中提出。

开发说明

依赖项目

请在clone本项目后,将以下项目clone到本地,放在同级目录下,否则无法正常运行。

https://github.com/Kuingsmile/flutterdep

软件修改

如果你想要修改或自行构建 PicHoro,可以依照下面的指示:

  1. 你需要有 Android Studio和 Android SDK 21+ 的环境,并安装了Flutter 3.13版本。flutter环境配置可以参考 Flutter 官方文档
  2. git clone https://github.com/Kuingsmile/PicHoro.git 并进入项目。
  3. Windows 推荐使用VScode编辑和调试代码。

图床修改

兰空图床的相册ID参数,限于以下两种情况下才会生效: 1. 基于付费企业版兰空图床搭建 2. 开源免费版需要自己或者联系管理员修改源代码文件,修改方式为打开 /app/Services/ImageService.php文件,修改第139行,原文件为

            if ($albumId = $user->configs->get(UserConfigKey::DefaultAlbum)) {
                if ($user->albums()->where('id', $albumId)->exists()) {
                    $image->album_id = $albumId;
                }
            }

修改为

           if ($request->has('album_id')) {
                $image->album_id = $request->input('album_id');
            } else {
            if ($albumId = $user->configs->get(UserConfigKey::DefaultAlbum)) {
                if ($user->albums()->where('id', $albumId)->exists()) {
                    $image->album_id = $albumId;
                }
            }
        }

依赖包修改

本APP使用的部分依赖包需要手动修改源代码才可使用,需要修改的依赖包如下:

minio_new

该依赖已经包含在了https://github.com/Kuingsmile/flutterdep中,无需手动修改。

  1. queries['maxKeys']修改为queries['max-keys']
  2. 添加导入 import 'package:xml2json/xml2json.dart';
  3. 如下修改listBuckets函数
  Future<List<Bucket>> listBuckets() async {
    final resp = await _client.request(
      method: 'GET',
      region: region ?? 'us-east-1',
    );
    final myTransformer = Xml2Json();
    myTransformer.parse(resp.body);
    Map responseMap = json.decode(myTransformer.toParker());
    List<Bucket> buckets = [];
    if (responseMap['ListAllMyBucketsResult'] == null ||
        responseMap['ListAllMyBucketsResult']['Buckets'] == null ||
        responseMap['ListAllMyBucketsResult']['Buckets']['Bucket'] == null ||
        responseMap['ListAllMyBucketsResult']['Buckets']['Bucket'].length ==
            0) {
      return buckets;
    }
    if (responseMap['ListAllMyBucketsResult']['Buckets']['Bucket'] is! List) {
      buckets.add(Bucket(
          DateTime.parse(responseMap['ListAllMyBucketsResult']['Buckets']
              ['Bucket']['CreationDate']),
          responseMap['ListAllMyBucketsResult']['Buckets']['Bucket']['Name']));
      return buckets;
    }
    for (var bucket in responseMap['ListAllMyBucketsResult']['Buckets']
        ['Bucket']) {
      buckets
          .add(Bucket(DateTime.parse(bucket['CreationDate']), bucket['Name']));
    }
    return buckets;
  }

chewie

文件路径示例: "D:\flutter\.pub-cache\hosted\pub.flutter-io.cn\chewie-1.3.6\lib\src\player_with_controls.dart"

第86行开始修改为

  return Container(
      color:Colors.black,
      child:Center(
      child: SizedBox(
        height: MediaQuery.of(context).size.height,
        width: MediaQuery.of(context).size.width,
        child: AspectRatio(
          aspectRatio: calculateAspectRatio(context),
          child: buildPlayerWithControls(chewieController, context),
        ),
      )),
    );

软件打包

如果你需要自行构建,可以使用 flutter build apk --release命令构建。 构建成功后,会在 build\app\outputs\flutter-apk\release 目录下生成 app-release.apk 文件。

请设置minifyEnabled falseshrinkResources false,否则打包release版本后可能会出现闪退。

License

MIT

Copyright (c) 2022-present, Kuingsmile

Github star

Stargazers over time

MIT License Copyright (c) 2022-present, Kuingsmile Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

一款手机端云存储平台/图床管理和文件上传/下载工具,支持直接管理Webdav,Alist,SSH/SFTP,云服务器,兼容S3 API的平台,腾讯COS,阿里OSS,七牛云,又拍云,兰空图床,Imgur,SM.MS和github 展开 收起
Dart
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Dart
1
https://gitee.com/endung/PicHoro.git
git@gitee.com:endung/PicHoro.git
endung
PicHoro
PicHoro
main

搜索帮助