您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

使用 JavaScript 清理我的 200GB iCloud,有了一个意外发现!

时间:2024-01-11 10:51:45  来源:CSDN  作者:

本文作者在综合成本因素之下,决定用 JAVA 脚本来清理一下自己的 iCloud,结果却有了一个意外发现,即在 iCloud 中上传同一个视频和删除此视频之后,iCloud 的空间并不一致,这到底是什么造成的呢?

原文:https://andykong.org/blog/icloudconfusion

作者 | Andy Kong 翻译 | 苏宓

出品 | CSDN(ID:CSDNnews)

最近,我收到了一封来自 Apple 的电子邮件,通知我的 iCloud 存储空间已满。

在邮件中,苹果给了我一个选项,即付费升级可以得到更大的 iCloud 空间。不过,我发现 1TB 和 200GB 的成本相差了三倍,有些太贵了,这也促使我开始去寻找替代方案。当打开 iCloud 时,我发现照片占据了大部分的存储空间(~127GB),所以我想我可以进入我的照片相册并按文件大小排序,然后适当删除,腾出一定的空间。

遗憾的是,苹果设备并不支持这一功能。不管是什么原因,我还是想按文件大小查看我的照片。市面上有几款应用程序可以查看照片并突出显示重复的照片,或查看视频并显示文件大小。唯一的问题是,已经上传到 iCloud 的照片不会显示在这些应用程序中,因此它们实际上并没有什么用处。另外,你真的希望随机应用扫描你所有的照片吗?

用 Java 作为解决方案

于是,我访问了 iCloud 网站并思考了有哪些可能性。我导航到“照片”->“媒体类型”->“视频”菜单栏。

可以看到,每个视频都有一个相应的时长框——只要它是 html 元素,我们就可以使用 JS 来搜索和筛选它们。我发现每个时长框都有 video-text-badge 类。这样,我们就可以在页面中找到所有的视频,按其持续时间排序,并高亮显示超过某个阈值的视频。下面是代码:

// From the blog post andykong.org/blog/icloudconfusion/

functionboxTops{

HTMLCollection.prototype.toArray = function{ returnArray.from(this); }

// Select all the time badges and parse out their total runtime in seconds

a = document.getElementsByClassName('video-text-badge').toArray

b = a.map((x) =>x.innerText)

c = b.map((y) =>y.split(":").map((x) =>parseInt(x)))

d = c.map((x) =>x[0]*60+ x[1])

// Sort the badges HTML array and badges runtime together

indices = Array.from(a.keys)

indices.sort( (x,y) =>d[x] - d[y])

sortedA = indices.map(i=>a[i])

sortedD = indices.map(i=>d[i])

// Function that boxes an element

functiondrawBox(element) {

if(element instanceofHTMLElement) {

element.style.border = "2px solid red";

}

}

thresh = 30// Min seconds to highlight a video

for(leti = 0; i < sortedD.length; i++) {

if(sortedD[i] > thresh){

drawBox(sortedA[i])

}

}

}

// Continuously highlight big videos

setInterval(boxTops, 500)

因为 iCloud 仅加载页面上的元素,所以我将其制作成一个在计时器上运行的函数,以便新元素在滚动到其中时会突出显示。它看起来是这样的:

大于 20 秒的视频会被红框圈出来,更容易识别

要使用它,只需打开 Java 控制台(右键单击页面 -> 检查元素)并粘贴整个要点。现在,你可以轻松地从 iCloud 选择多个大视频并在删除之前下载它们,将它们移动到长期存储中:硬盘、其他云存储等。

谜团

我用这个脚本删除了 iCloud 中所有超过 30 秒的视频。有趣的是,在我删除所有“大视频”并下载它们后,尽管只下载了 7GB 的视频,但它却从我的 iCloud 中清除了 ~55GB 的内容。谜底就在这里。

所有下载的视频占用8GB磁盘空间

下载 7GB 视频后,iCloud 存储空间从 199GB 减少至 143GB

不知为什么,这 7GB 视频在云端占用的空间远远超过了我硬盘上的空间。有趣的是...

实验 1

我想进一步测试一下。首先,我上传了一段 4K 视频。它占用了 281 MB。上传后,我的存储空间看起来是这样的:

上传 4K 视频,iCloud 显示已使用 145.33 GB

然后我下载并删除了它。文件仍然是 281 MB。这是之后的存储情况:

4K 视频被删除,iCloud 称已使用 145.6 GB

删除 281MB 的视频可腾出 ~270MB 的空间。这一点令人费解。其他较旧的视频呢?

实验 2

我想,也许较旧的视频可能在 iCloud 中保存了多个副本,因此我搜索了我的视频,看看能否找到一个占用大量存储空间的较短视频。我找到了一个有很多图表的视频,iCloud 说它占用了 128 MB。

较旧的大视频,占用 128 MB

下载时,文件只有 47 MB!

下载的视频文件为 47 MB

这是我的 iCloud 存储空间使用前后的对比:

删除旧视频之前的 iCloud 存储空间,已使用 145.29 GB

删除旧视频后的 iCloud 存储空间,已使用 145.12 GB,减少 170MB

因此,iCloud 显示视频为 128MB,我下载后发现视频实际为 48MB,而删除视频后,我的可用存储空间增加了约 170MB。真有意思!

结论

我的存储空间释放量是删除文件大小的 7 倍多,这很奇怪。更奇怪的是,大容量的旧视频在 iCloud 中的存储空间占用似乎比现实生活中要大得多。

你知道为什么会出现这种情况吗?



Tags:JavaScript   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  Search: JavaScript  点击:(4)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践&mdash;&mdash;如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  Search: JavaScript  点击:(25)  评论:(0)  加入收藏
构建一个通用灵活的JavaScript插件系统?看完你也会!
在软件开发中,插件系统为应用程序提供了巨大的灵活性和可扩展性。它们允许开发者在不修改核心代码的情况下扩展和定制应用程序的功能。本文将详细介绍如何构建一个灵活的Java...【详细内容】
2024-03-20  Search: JavaScript  点击:(20)  评论:(0)  加入收藏
对JavaScript代码压缩有什么好处?
对JavaScript代码进行压缩主要带来以下好处: 减小文件大小:通过移除代码中的空白符、换行符、注释,以及缩短变量名等方式,可以显著减小JavaScript文件的大小。这有助于减少网页...【详细内容】
2024-03-13  Search: JavaScript  点击:(2)  评论:(0)  加入收藏
跨端轻量JavaScript引擎的实现与探索
一、JavaScript 1.JavaScript语言JavaScript是ECMAScript的实现,由ECMA 39(欧洲计算机制造商协会39号技术委员会)负责制定ECMAScript标准。ECMAScript发展史: 2.JavaScript...【详细内容】
2024-03-12  Search: JavaScript  点击:(2)  评论:(0)  加入收藏
面向AI工程的五大JavaScript工具
令许多人惊讶的是,一向在Web开发领域中大放异彩的JavaScript在开发使用大语言模型(LLM)的应用程序方面同样大有价值。我们在本文中将介绍面向AI工程的五大工具,并为希望将LLM...【详细内容】
2024-02-06  Search: JavaScript  点击:(52)  评论:(0)  加入收藏
18个JavaScript技巧:编写简洁高效的代码
本文翻译自 18 JavaScript Tips : You Should Know for Clean and Efficient Code,作者:Shefali, 略有删改。在这篇文章中,我将分享18个JavaScript技巧,以及一些你应该知道的示例...【详细内容】
2024-01-30  Search: JavaScript  点击:(65)  评论:(0)  加入收藏
使用 JavaScript 清理我的 200GB iCloud,有了一个意外发现!
本文作者在综合成本因素之下,决定用 Java 脚本来清理一下自己的 iCloud,结果却有了一个意外发现,即在 iCloud 中上传同一个视频和删除此视频之后,iCloud 的空间并不一致,这到底是...【详细内容】
2024-01-11  Search: JavaScript  点击:(97)  评论:(0)  加入收藏
JavaScript前端框架2024年展望
Angular、Next.js、React和Solid的维护者和创作者们展望2024年,分享了他们计划中的改进。译自2024 Predictions by JavaScript Frontend Framework Maintainers,作者 Loraine...【详细内容】
2024-01-05  Search: JavaScript  点击:(89)  评论:(0)  加入收藏
JavaScript开发者转向Rust的原因?
JavaScript开发者转向Rust的原因可能有很多,这里列出一些可能的原因: 性能: Rust是一种编译型语言,其性能通常优于JavaScript等解释型语言。对于需要处理大量数据或需要高并发的...【详细内容】
2024-01-04  Search: JavaScript  点击:(96)  评论:(0)  加入收藏
▌简易百科推荐
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  前端新世界  微信公众号  Tags:JavaScript   点击:(4)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践&mdash;&mdash;如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  前端新世界  微信公众号  Tags:JavaScript   点击:(25)  评论:(0)  加入收藏
又出新JS运行时了!JS运行时大盘点
Node.js是基于Google V8引擎的JavaScript运行时,以非阻塞I/O和事件驱动架构为特色,实现全栈开发。它跨平台且拥有丰富的生态系统,但也面临安全性、TypeScript支持和性能等挑战...【详细内容】
2024-03-21  前端充电宝  微信公众号  Tags:JS   点击:(22)  评论:(0)  加入收藏
构建一个通用灵活的JavaScript插件系统?看完你也会!
在软件开发中,插件系统为应用程序提供了巨大的灵活性和可扩展性。它们允许开发者在不修改核心代码的情况下扩展和定制应用程序的功能。本文将详细介绍如何构建一个灵活的Java...【详细内容】
2024-03-20  前端历险记  微信公众号  Tags:JavaScript   点击:(20)  评论:(0)  加入收藏
对JavaScript代码压缩有什么好处?
对JavaScript代码进行压缩主要带来以下好处: 减小文件大小:通过移除代码中的空白符、换行符、注释,以及缩短变量名等方式,可以显著减小JavaScript文件的大小。这有助于减少网页...【详细内容】
2024-03-13  WangLiwen    Tags:JavaScript   点击:(2)  评论:(0)  加入收藏
跨端轻量JavaScript引擎的实现与探索
一、JavaScript 1.JavaScript语言JavaScript是ECMAScript的实现,由ECMA 39(欧洲计算机制造商协会39号技术委员会)负责制定ECMAScript标准。ECMAScript发展史: 2.JavaScript...【详细内容】
2024-03-12  京东云开发者    Tags:JavaScript   点击:(2)  评论:(0)  加入收藏
面向AI工程的五大JavaScript工具
令许多人惊讶的是,一向在Web开发领域中大放异彩的JavaScript在开发使用大语言模型(LLM)的应用程序方面同样大有价值。我们在本文中将介绍面向AI工程的五大工具,并为希望将LLM...【详细内容】
2024-02-06    51CTO  Tags:JavaScript   点击:(52)  评论:(0)  加入收藏
JS小知识,使用这6个小技巧,避免过多的使用 if 语句
最近在重构我的代码时,我注意到早期的代码使用了太多的 if 语句,达到了我以前从未见过的程度。这就是为什么我认为分享这些可以帮助我们避免使用过多 if 语句的简单技巧很重要...【详细内容】
2024-01-30  前端达人  今日头条  Tags:JS   点击:(56)  评论:(0)  加入收藏
18个JavaScript技巧:编写简洁高效的代码
本文翻译自 18 JavaScript Tips : You Should Know for Clean and Efficient Code,作者:Shefali, 略有删改。在这篇文章中,我将分享18个JavaScript技巧,以及一些你应该知道的示例...【详细内容】
2024-01-30  南城大前端  微信公众号  Tags:JavaScript   点击:(65)  评论:(0)  加入收藏
使用 JavaScript 清理我的 200GB iCloud,有了一个意外发现!
本文作者在综合成本因素之下,决定用 Java 脚本来清理一下自己的 iCloud,结果却有了一个意外发现,即在 iCloud 中上传同一个视频和删除此视频之后,iCloud 的空间并不一致,这到底是...【详细内容】
2024-01-11    CSDN  Tags:JavaScript   点击:(97)  评论:(0)  加入收藏
站内最新
站内热门
站内头条