DropBox Mac 客户端如何工作?

2024-04-17

我一直在看DropBox http://www.getdropbox.com/install?os=macMac 客户端和我目前正在研究为不同的服务实现类似的界面。

他们究竟是如何与这样的取景器交互的?我非常怀疑文件夹中表示的这些对象是每次加载时下载的实际文档吗?它们必须根据需要动态下载。那么如何在没有实际文件系统对象的情况下在 Finder 中显示这些项目呢?

有谁知道这在 Mac OS X 中是如何实现的?

或者有任何指向 Apple API 或其他与 finder 具有类似集成的开源项目的指针吗?


Dropbox 不由 MacFUSE 或 WebDAV 提供支持,尽管这些可能是您想要完成的任务的完美解决方案。

如果它是由这些东西提供支持的,那么当你没有连接时它就无法工作,因为它们都依赖服务器来存储实际信息,而 Dropbox 则不然。如果我退出 Dropbox(通过菜单项完成)并断开网络连接,我仍然可以使用这些文件。那是因为这些文件实际上存储在我的硬盘上。

这也意味着这些文件不需要“每次加载时都下载”,因为它们实际上存储在我的机器上。相反,仅通过线路发送增量,并且 Dropbox 应用程序(在后台运行)适当地修补文件。另一方面,Dropbox 应用程序监视 Dropbox 文件夹中的文件,当它们发生更改时,它会将适当的增量发送到服务器,服务器将它们传播到任何其他客户端。

这种设置有一些明显的优点:它可以在离线时工作,速度快一个数量级,并且对其他应用程序是透明的,因为它们只看到磁盘上的文件。但是,我不知道它如何处理合并冲突(这很容易在一个或多个客户端离线时出现),如果服务器是唯一的副本并且每次编辑都会更改该中央副本,那么这不是问题。

Dropbox 真正出色的地方在于,他们有一个额外的技巧,可以将 Dropbox 文件夹中的项目标记为当前同步状态。但这不是你在这里问的。

就目前的问题而言,您绝对应该研究 MacFUSE 和 WebDAV,它们可能是您问题的完美解决方案。但 Dropbox 的处理方式(通过后台应用程序更改磁盘上的实际文件)可能是更好的权衡。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DropBox Mac 客户端如何工作? 的相关文章

  • Swift 5 MacOS 图像调整大小内存问题

    我是使用 Swift 进行 Mac OS 应用程序开发的新手 但我尝试制作简单的 ImageResizer 应用程序 我必须调整 50k 图像的大小 10个小时后 内存已增加到近120GB 我以为 Swift 也有垃圾收集器 为什么它可以增
  • 如何在Android data/data/project文件系统中创建文件目录和文件夹

    我正在开发一个视频编辑器程序 并且对 android 和 java 相当陌生 我希望发生的是 当用户按下 创建新项目 按钮时 会弹出一个对话框 询问用户项目的名称 我已经把那部分写下来了 但是我想要的是 当用户在该对话框上按 确定 时 我的
  • 如何从 MacOS X Dock 启动脚本?

    我知道我可以将应用程序固定到扩展坞并从那里启动它们 但是 有没有办法将不是 MacOS 意义上的 应用程序 的程序 例如 bash 脚本 固定到扩展坞上 您可以将任何文件拖到 Dock 的右侧栏 垃圾箱和文件夹所在的位置 然后单击它来执行它
  • 扩展属性存储在哪里?

    这是一个简单的问题 但我做了一些研究 找不到任何答案 所以有人知道当我们通过 xattr 定义扩展属性时 这些属性是否存储在文件内容中 作为文件内容的一部分 在最后 到底 或者索引节点是否有一个特殊的区域来存储这些 顺便说一句 我在 ext
  • 无法在 Swift 中创建文件路径

    我尝试在 Swift 中打开该文件 为此 我创建了文件路径 这不起作用 maaaacy pwd Users tsypa maaaacy cat a txt test maaaacy a swift nil maaaacy 剧本 usr bi
  • 在 OS X 上以编程方式禁用环境光传感器屏幕调暗

    我已经在内核代码仓库中挖掘了好几天了 但我在任何地方都找不到这个 我想禁用 启用 检测许多高端 Mac 笔记本电脑所具有的基于环境光传感器的屏幕调光的状态 这是通过显示控制面板中的 自动调整亮度 复选框激活的调光 请注意 我是NOT谈论半暗
  • vscode通过SSH连接gitlab的问题

    我在尝试通过 SSH 连接到 GitLab 远程存储库时遇到问题 这里是迄今为止完成的步骤 成功生成 SSH 密钥 管理人员将密钥添加到存储库中 因此当我访问 GitLab 网站时 我可以提交和发布分支 我无法从 VSCODE 发布分支并收
  • SwiftUI 更新主菜单 [已解决] kludgey

    真正的问题 你如何更新mainMenu在 SwiftUI 中 它真的可以工作吗 我在 SwiftUI 中构建了一个基于 MacOS 文档的应用程序 其中包括所有内置的文件菜单命令 即关闭 保存 复制 重命名 等 在保存文档之前 我会验证结构
  • Xcode 11 无法识别静态库的架构:MacCatalyst(又名 UIKitForMac)

    在对 2019 年 WWDC 公告感到兴奋之后 我尝试使用 Xcode 11 0 beta 针对 MacOS 编译现有的 iOS 应用程序 不幸的是 事情并没有按预期进行 Xcode 说我的静态库是为 架构构建的 为 Mac 版 UIKit
  • dyld[45923]:库未加载:/usr/local/opt/libavif/lib/libavif.15.dylib

    dyld 45923 Library not loaded usr local opt libavif lib libavif 15 dylib Referenced from lt 735019D8 AF6E 3CD1 9AD4 3BE4
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • ASCII“../”是 PHP 中指示目录遍历的唯一字节序列吗?

    我有一个 PHP 应用程序 它使用 GET参数来选择文件系统上的 JS CSS 文件 如果我拒绝输入字符串包含的所有请求 或者可见 7 位 ASCII 范围之外的字节 当路径传递到 PHP 的底层 基于 C 文件函数时 这是否足以防止父目录
  • pip3:错误的解释器:没有这样的文件或目录

    我正在尝试使用安装依赖项pip3 command 当前场景 Dev which python Users Dev anaconda bin python Dev which python3 usr local bin python3 Dev
  • 使用 mono/nunit-console/4 在 Mac OS X 控制台上运行测试

    我安装了 Max OS X 10 11 1 上面装有 Xamarin 我编写了简单的测试类 只是为了测试在 Mac OS X 和 Ubuntu 上运行 Nunit 测试 该类实际上有一个返回字符串的方法 using System names
  • 使用 Cocoa/OSX 合并/堆叠两个图像

    我有一个 CGImageRef 我们称之为原始图像 和一个透明 png 水印 我正在尝试编写一种方法将水印放置在原始内容之上 并返回 CGImageRef 在 iOS 中 我会使用 UIKit 将它们绘制到上下文中 但这在 OSX 中似乎不
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • `pyqt5'错误`元数据生成失败`

    我正在尝试安装pyqt5使用带有 M1 芯片和 Python 3 9 12 的 mac 操作系统 我怀疑M1芯片可能是原因 我收到一个错误metadata generation failed 最小工作示例 directly in the t
  • OSX 上的 locale.getlocale() 问题

    我需要获取系统区域设置来执行许多操作 最终我想使用 gettext 翻译我的应用程序 我打算在 Linux 和 OSX 上分发它 但我在 OSX Snow Leopard 上遇到了问题 python Python 2 5 2 r252 60

随机推荐

  • 获取第n行文本输出

    我有一个每次生成两行作为输出的脚本 我真的只对第二行感兴趣 此外 我只对第二行一对 之间出现的文本感兴趣 此外 在散列之间还使用另一个分隔符 A 如果我还可以分解以 A 分隔的文本的每个部分 那就太好了 请注意 A 是 SOH 特殊字符 可
  • PowerShell,用另一种文化格式化值

    PowerShell 中有没有一种简单的方法可以在另一个语言环境中格式化数字等 我目前正在编写一些函数来简化我的 SVG 生成和 SVG 使用 作为小数点分隔符 而 PowerShell 遵循我的区域设置 de DE 将浮点数转换为字符串时
  • 检索 Windows 10 电源模式滑块的状态

    是否有任何 API 可以检索 Windows 10 电源模式滑块的状态 我在看Windows System Power名称空间 https learn microsoft com en us uwp api windows system p
  • GitHub Actions 工作流程错误:运行命令超时!即使剧本做得很好

    每次提交到存储库时 我想在远程服务器上部署 Nuxt js 应用程序 这是我的deploy yml name Deployment on push branches master jobs deploy name Deploy runs o
  • 分配多个 JsonProperty?

    我正在尝试创建一个包含来自 Facebook 和 Twitter 的信息的单个数据类 但在我来自 Twitter 的 JSON 回复中我需要id str我从 Facebook 得到id 我需要将这两个放入id 细绳 现在我知道我可以使用 J
  • WooCommerce:如何在价格和促销价格之前添加文本?

    我已成功地让文本显示在价格之前和促销价格之前 但文本被视为价格的一部分 而不是与其分开 Placing ins before content Betty s price color 000 font size 14px 在我的自定义 CSS
  • Flutter 嵌套行 MainAxisAlignment

    我想做这个 但这是我实际得到的 这是我的代码 Row itemTransaction BuildContext context Transaction transaction This is the function that will b
  • 如何配置 android 测试目录?

    Android gradle 构建强制我的 AndroidTests 位于 src androidTests 中 如何将其更改为我选择的另一个目录 这是一些背景 我正在从 eclipse 迁移一个项目 根据构建文档 当我将其添加到我的 gr
  • 重新启动 Vaadin 应用程序时抛出 java.io.NotSerializedException

    当我重新启动 Tomcat 时 出现以下错误 2014 10 01 15 49 47 055 WARN com vaadin event ListenerMethod localhost startStop 2 Error in seria
  • 如何判断一个对象是否是 Mockito 模拟对象?

    是否可以在代码中判断给定对象是否是 Mockito 模拟对象 我想这样做的原因是在使用模拟时返回不同的错误消息 这将用于向其他开发人员建议他们应该使用预先准备的模拟 该模拟已经设置为以有用的方式应答呼叫 而不是自己创建模拟 目前我拥有的最好
  • 《How To Make a Tile-Based Game with Cocos2D 2.X》用cocos2d V3制作本教程

    我有一个小问题 在本教程中如何使用 Cocos2D 2 X 制作基于图块的游戏 http www raywenderlich com 29458 how to make a tile based game with cocos2d 2 x使
  • 当活动处于后台或不在后台时,Firebase 通知不起作用

    我的编码与 firebase 示例代码提供的相同 当 Activity 处于前台状态或打开时 它可以正常工作 但是 当活动关闭或处于后台状态时 它就无法正常工作 问题是这样的 不显示应用程序的应用程序图标 默认情况下以应用程序名称作为通知标
  • 为什么基元的包装类没有 setter?

    包装类 如 Integer Double 等 没有为其内部原始值设置 setter 的原因是什么 我问这个问题是因为这种功能可以简化微积分 并使 Java 语言更加灵活 让我举一些例子 1 我们看下面的例子 Integer x new In
  • 通过adb获取sdcard目录

    我正在制作一个应用程序 它通过 adb 从设备 SD 卡中提取文件 由 Android 应用程序保存 问题是不同的设备 有不同的SD卡目录 i e sdcard SD卡 external sd 首先我发明了以下解决方案 运行 adb she
  • 如何解决“安装包:当前环境没有打开的解决方案。”

    我有一个包含 1 个项目的解决方案 打开包管理器控制台 运行 Install Package MSBuildTasks 但它给了我一个错误 Install Package The current environment doesn t ha
  • 使用 getActivity() 进行强制转换安全吗?

    我正在编写一个有父级的应用程序Activity和几个孩子Fragments 我正在尝试让片段与父活动进行通信 我知道有几种方法可以做到这一点 包括创建一个接口并在父活动中实现它 不过 我对这个方法很感兴趣 ParentActivity ac
  • 禁用 sympy 中的自动简化

    我想禁用 sympy 中的自动简化 例如求解方程x y x我想要得到x x代替1 import sympy from sympy abc import x y z expr x y x sympy solve expr y gt 1 i w
  • 为什么 `head` 需要 `()` 而 `shape` 不需要?

    在下面的代码中 我将 csv 文件导入到 Python 的 pandas 库中并显示前 5 行 并查询 pandas 数据框的 形状 import pandas as pd data pd read csv my file csv data
  • 链接对象文件时出现“未定义的引用”错误[重复]

    这个问题在这里已经有答案了 我意识到这个问题已经通过多种方式提出 包括这个非常全面的答案 https stackoverflow com questions 12573816 what is an undefined reference u
  • DropBox Mac 客户端如何工作?

    我一直在看DropBox http www getdropbox com install os macMac 客户端和我目前正在研究为不同的服务实现类似的界面 他们究竟是如何与这样的取景器交互的 我非常怀疑文件夹中表示的这些对象是每次加载时