魅族云相册批量导出方案 一键下载脚本 – 极客少年

您所在的位置:网站首页 魅族云相册下载电脑怎么下载到桌面上去 魅族云相册批量导出方案 一键下载脚本 – 极客少年

魅族云相册批量导出方案 一键下载脚本 – 极客少年

2024-07-09 08:37:01| 来源: 网络整理| 查看: 265

有魅族手机简单,直接在手机上安装百度网盘,然后用百度云同步备份相册就好了。

但我这边是早就没有魅族手机了,同时收到魅族官方发的短信通知“【魅族科技】您的云相册已超 365 天未使用,5G 免费容量已被回收,照片数据暂存于回收站内,到期将自动清空。请尽快登录魅族云服务转移数据。”

我登录 https://photos.flyme.cn/ 进去看了下,第一次登录需要等24小时后冻结数据才能恢复,24小时后进回收站点击“全部恢复”,这时候云相册里就有了,但是我发现自己照片有将近2000张,包含各种壁纸和截图啥的,尝试了手动批量点击,然后打包下载,发现选多了会下载失败,选少了又太麻烦,网上找了半天,终于找到一个。特此分享给有同样需求的朋友。

以下内容转自公众号(本站有细节完善):芊芊爸爸|微信号:qianqianbaba-Sean |原文链接: https://mp.weixin.qq.com/s/cZfZqRkLDAsNoW02eLiSSw

2015年开始使用魅族手机,16G存储,当时应该是很普遍的配置,以为平时不玩游戏也够用。

2017年因为打王者太卡了,换了另外一台CPU和内存更高的魅族,64G存储。后面用到2020年,华为被老M欺负(可能还是觉得打王者有点不顺畅),转支持华为。 手机厂商一般都为相册提供了云存储功能,每次拍完照片都会自动上传到云存储,非常方便,每隔几个月清理一下手机空间即可,为此还连续几年购买了云空间容量年套餐。 然将近6年拍摄了近百G的照片和视频(这6年也正是伴随芊芊和芊弟弟,每个瞬间都有记录),后面发现没办法下载下来了。

魅族云存储通过手机无法直接下载整个目录(手机空间不够),登录WEB后台只能一张一张的选择下载,就是个鸡肋。

等了好几年都不见优化这个功能,无奈只能写个脚本自己搞定。

魅族是使用的阿里云OSS(对象存储),本身阿里云提供了多种语言的SDK,调用对应接口即可,没啥技术难度。

这里分享一个思路(小白略过,直接按下面步骤做即可):

先调用魅族的接口,拿到相册和所有照片、视频信息(主要是拿到下载地址);

然后根据Flyme云服务的接口拿到请求阿里云OSS接口所需的token和key信息,例如:https://mzstorage.meizu.com/file/get_sig 接口,这里不作细述,感兴趣的可以看脚本。

最后是直接调用阿里云SDK下载照片和视频。 本来想写个通用程序,然后做个Docker镜像,方便一些小白使用,但是这玩意价值不大(有人付费就有价值,哈哈),懒得折腾了,还是写个教程吧(主要对象是小白)。

下面教程是基于我提供的脚本来编写(脚本是github上找的,做了一些修改),理论上跟着步骤往下走是没啥大问题,如有什么问题可以直接留言。

(一、环境准备)

首先下载脚本包到本地电脑任意目录解压,建议直接放到某盘根目录。

github地址:https://github.com/SeanXiao1207/mzstorage

然后进入mzstorage-master解压目录,能看到如下文件列表

此时可以看到脚本是使用PHP写的,so 我们要准备一个PHP环境。 这里推荐一个傻瓜式的PHP开发环境,直接下载安装就有一整套PHP+MySQL+Nginx/Apache等环境的操作面板,非常方便。

下载地址:https://www.xp.cn/download.html

进入地址后直接选择“立即下载”即可,然后解压运行安装程序完成安装。

打开软件,可以看到这里有很多操作选项,我们只需要用到MySQL(存储相册和照片、视频信息),然后就是配置PHP运行环境(运行PHP脚本)。

启动MySQL(1),然后选择”数据库“(2),选择”修改root密码“为123456。

需要执行SQL脚本,选择数据库工具”打开“(3),选择”SQL-Front“,如果提示没有安装,只需要按照提示去”软件管理“中选择”安装“即可。

然后再打开(3),选择”SQL-Front“,打开后输入root/123456登录,然后在"SQL编辑器"中复制执行下面执行下面脚本。

CREATE DATABASE IF NOT EXISTS task; # 创建图片记录表 CREATE TABLE task.`dy_mz_album` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '记录id', `album_id` int(10) unsigned DEFAULT '0' COMMENT '照片id', `dirId` int(10) unsigned DEFAULT '0' COMMENT '相册id', `dirName` varchar(64) DEFAULT NULL COMMENT '相册名称', `fileName` varchar(255) DEFAULT NULL COMMENT '照片名称', `groupDirId` varchar(64) DEFAULT NULL, `groupId` varchar(64) DEFAULT NULL, `height` int(10) unsigned DEFAULT '0' COMMENT '照片高度', `width` int(10) unsigned DEFAULT '0' COMMENT '照片宽度', `isVideo` tinyint(3) unsigned DEFAULT NULL COMMENT '是否视频', `md5` varchar(64) DEFAULT NULL COMMENT '文件md5', `createTime` bigint(13) unsigned DEFAULT NULL COMMENT '创建时间', `modifyTime` bigint(13) unsigned DEFAULT NULL COMMENT '修改时间', `remainTrashTime` bigint(13) unsigned DEFAULT NULL, `shootTime` bigint(13) unsigned DEFAULT NULL, `size` bigint(20) DEFAULT NULL, `sqlNow` bigint(13) unsigned DEFAULT NULL COMMENT '最后查询时间', `tags` varchar(255) DEFAULT NULL COMMENT '标签', `thumb256` varchar(255) DEFAULT NULL COMMENT '缩略图', `thumb1024` varchar(255) DEFAULT NULL COMMENT '缩略图', `uid` varchar(10) DEFAULT NULL COMMENT 'uid', `userId` int(10) unsigned DEFAULT NULL, `url` varchar(255) DEFAULT NULL COMMENT '图片路径', `local` varchar(255) DEFAULT '' COMMENT '本地路径(代表是否已下载)', `status` int(2) unsigned DEFAULT NULL COMMENT '状态', `create_time` datetime DEFAULT NULL COMMENT '上传时间', `update_time` datetime DEFAULT NULL COMMENT '采集时间', `is_delted` tinyint(1) unsigned DEFAULT '0' COMMENT '是否被删除', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3500 DEFAULT CHARSET=utf8mb4; # 创建相册表 CREATE TABLE task.`dy_mz_dir` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `dir_id` int(10) unsigned DEFAULT '0' COMMENT '相册id', `dirName` varchar(64) DEFAULT NULL COMMENT '相册名称', `fileNum` int(10) unsigned DEFAULT '0' COMMENT '相册数量', `icon` varchar(255) DEFAULT '' COMMENT '缩略图', `sqlNow` bigint(13) unsigned DEFAULT '0' COMMENT '最后一次查询时间', `modifyTime` bigint(13) unsigned DEFAULT '0' COMMENT '最后修改时间', `createTime` bigint(13) unsigned DEFAULT '0' COMMENT '相册创建时间', `userId` int(10) unsigned DEFAULT '0' COMMENT '用户id', `totalSize` bigint(20) DEFAULT NULL COMMENT '相册总大小', `status` tinyint(2) unsigned DEFAULT NULL COMMENT '相册状态', `create_time` datetime DEFAULT NULL COMMENT '上传时间', `update_time` datetime DEFAULT NULL COMMENT '采集时间', `is_delted` tinyint(1) unsigned DEFAULT '0' COMMENT '是否被删除', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COMMENT='魅族相册表';

如果不想用默认的密码和端口,可以在解压目录config.php配置文件中修改,默认不要动这里。

然后就是配置PHP环境,PHP环境只需要配置一个环境变量即可。

打开命令提示符(cmd),执行下面命令就可以完成PHP环境变量设置,注意下面%path%;后面部分是PHP所在目录,注意你的phpstudy是在C盘还是D盘,一般只需要修改盘符即可。

setx path "%path%;C:\phpstudy_pro\Extensions\php\php7.3

至此,配置工作已经完成了。

(二、执行脚本)

在cmd进入脚本所在目录,执行拉取相册命令,因为照片和视频信息是需要通过相册ID来获取。

php dir.php K:\Users\15814\Downloads\mzstorage-master>php dir.php [MSG] 用户信息验证失败 [ERROR] TOKEN 失效,请更新token! > 刷新flyme云服务的相册页面,复制获取token的js方法到Console窗口下获取token,并更新到token文件中。 [INPUT] 请输入新的Token:

如上,执行php dir.php后会提示需要更新token,登录flyme云相册。

登录flyme云相册:https://photos.flyme.cn/photo/index

然后在浏览器中按F12,选择Console,执行下面脚本获取token。

function getCookie(name){var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");if(arr=document.cookie.match(reg)){return unescape(arr[2])}else{return null}}getCookie("_utoken");

直接将这一串红色字符串(双引号里面的)粘到上面提示输入新token的命令行中,会看到相册列表出来了。

K:\Users\15814\Downloads\mzstorage-master>php dir.php [NOTICE] Token 已更新。------------------- id 相册名称 ------------------- 图片收藏 2张 ------------------- 请输入: 'php album.php 277' 进行采集 相册更新成功!

然后根据相册ID拉取每个相册的照片和视频信息,拉取相册列表:

php album.php K:\Users\15814\Downloads\mzstorage-master>php album.php 请选择相册: ------------------- id 相册名称 ------------------- 277 图片收藏 ------------------- 请输入: 'php album.php 277' 进行采集

拉取对应相册:php album.php 277

K:\Users\15814\Downloads\mzstorage-master>php album.php 277 相册拉取:2/2 张 更新完成!

最后就是下载照片和视频:php down.php

K:\Users\15814\Downloads\mzstorage-master>php down.php 更新OSS签名! 当前目录中,文件K:\Users\15814\Downloads\mzstorage-master\down\图片收藏\4d852e2268ac5bfb2bed974ee645c7a6.jpg存在1[SUCCESS] '05/41/84/65/054184657650dea606b6ddfea2ca98ae.jpg' 当前目录中,文件K:\Users\15814\Downloads\mzstorage-master\down\图片收藏\6d653be354c137f9ed14917001b110e9.jpg存在1[SUCCESS] '1c/10/57/56/1c105756c68afd67abbee6ba00d9bc66.jpg' 所有照片已下载完毕! (三、问题)

如果重复执行出现OSS.php signUrl的问题,需要清空.alioss_sigin文件内容,然后再次执行命令;

如果出现大量关闭流的问题,可以中断执行,然后再次重复执行即可(这里一般是下载的时候token过期了,导致下载不到文件);

这里有几个超时场景需要注意一下,方便处理问题:

阿里云存储token超时(默认有1小时),将导致上面第2个问题;

数据库超时,这里主要是MySQL端会超时关闭链接,这里要么改成短链接(每次建立连接)、要么修改my.ini配置interactive_timeout和wait_timeout都设置足够大;

下载完后注意核对文件数,如果不一致可能是上面问题2导致的,只需要把数据重置一下即可,数据库执行下面脚本

update task.`dy_mz_album` set local = ''


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭