有没有办法告诉 Dropbox 不要上传某个文件? (Eclipse 相关)

Posted

技术标签:

【中文标题】有没有办法告诉 Dropbox 不要上传某个文件? (Eclipse 相关)【英文标题】:Is there a way to tell Dropbox not to upload a certain file? (Eclipse related) 【发布时间】:2012-08-20 14:53:54 【问题描述】:

我正在尝试在两台计算机之间同步代码项目,一台运行 Windows,另一台运行 Ubuntu 12.04。 我在两台机器上都使用 Eclipse,但是 Eclipse 生成的 .metadata 文件夹导致 Eclipse 由于操作系统不兼容而崩溃。

我想知道是否有办法告诉 Dropbox“忽略此文件夹”或类似的东西。或者让它忽略所有隐藏文件。

【问题讨论】:

.metadata 文件夹的内容并不意味着共享,与平台不兼容无关。请阅读版本控制系统。您的问题是关于隐藏症状,而不是解决根本原因。 Dropbox 确实需要添加某种.ignore 文件。归根结底,这将为他们的服务器节省大量工作,而不必在每次构建项目时同步我的 binobj 文件夹。 【参考方案1】:

使用官方 Dropbox 命令行界面 (CLI)

PROMPT$ dropbox help exclude
dropbox exclude [list]
dropbox exclude add [DIRECTORY] [DIRECTORY] ...
dropbox exclude remove [DIRECTORY] [DIRECTORY] ...

"list" prints a list of directories currently excluded from syncing.
"add" adds one or more directories to the exclusion list, then resynchronizes Dropbox.
"remove" removes one or more directories from the exclusion list, then resynchronizes Dropbox.
With no arguments, executes "list".
Any specified path must be within Dropbox.

http://www.dropboxwiki.com/tips-and-tricks/using-the-official-dropbox-command-line-interface-cli

【讨论】:

这需要让客户端运行,有没有没有这个限制的解决方案? 我认为值得注意的是,至少在 Linux 上,dropbox exclude 允许您排除 files (根据这个问题的措辞,如果不是意图的话)作为以及文件夹。 GUI 只允许您排除文件夹。 这适用于哪个 CLI 版本?它似乎不是 3.0 上的选项 该网站的作者删除了它的内容,所以这里有一个存档链接:web.archive.org/web/20190219090359/http://www.dropboxwiki.com/… 当我排除一个文件,即dropbox exclude full_file_path,然后使用dropbox exclude 检查列表时,它会显示“没有目录被忽略。”。其他人是否发现相同?它是否仍然排除文件? (目前我很难测试,因为我目前已经超过了保管箱空间。)【参考方案2】:

右键单击任务栏图标,选择首选项,然后选择高级选项卡并设置选择性同步。启用高级视图也会有所帮助。 一般来说,您应该考虑使用像Subversion、Mercurial 或git 这样的版本控制系统。您可以使用免费托管服务(Assembla、Github、Bitbucket 仅举几例)或在 USB 驱动器上设置存储库(非常适合个人项目)。

【讨论】:

感谢您的帮助!我确实将 git 用于我的个人项目,但我想专门为此使用 Dropbox,因为它适用于学校的家庭作业项目。如果我使用像 github 这样的公共托管网站,我可能会在分发作业时遇到麻烦。 使用 bitbucket.org,它为您提供无限的私人回购(最多 7 个人使用您的任何免费回购)。 @Malcolm 此外,GitHub 和 Bitbucket 等网站有教育计划,如果您有教育电子邮件地址,您可以免费获得私人存储库等。【参考方案3】:

如果您在 2020 年或之后签入,则可以按照官方方式忽略文件/文件夹从您的计算机同步到保管箱。

尽管在撰写本文时,该功能仍处于测试阶段。

https://help.dropbox.com/files-folders/restore-delete/ignored-files

ignoringexcluding 不同。

Dropbox exclude 会从您的计算机中完全删除该文件夹。但是,文件/文件夹确实保留在 Dropbox 的服务器上。任何时候您都可以通过进入 Dropbox 应用的设置将排除的文件夹重新包含到您的计算机上。 ignore 允许您将文件或文件夹保留在您的机器上,但根本不会将文件或文件夹同步到 Dropbox。这意味着该文件夹仅位于您当前的计算机上,而不位于 Dropbox 上。

例如:

    您可以选择dropbox exclude 来排除您机器上没有空间或不需要的大备份文件。该文件/文件夹仍将存在于 Dropbox 上。

    当您的文件夹包含数千或数百万个不需要备份的临时文件时,您可以选择将 ignore 文件夹从同步到保管箱。备份此类文件夹可能会导致 Dropbox 使用计算机上的大量 CPU 周期和 RAM 来跟踪文件的所有更改。这可能会降低您的计算机速度。

    node_modules 是此类文件夹的一个示例,它安装在节点项目目录中。 node_modules 中包含相当多的文件,这些文件可以安全地从同步到 Dropbox 中忽略,并通过在任何时间点执行 npm install 重新创建。

    您也可以选择忽略包含 Web 服务器密钥或 ssh 私钥的环境变量文件。在 Dropbox 上跨团队共享文件夹时,这可能很有用。

如何排除: - 要排除文件从保管箱同步到您的计算机,您需要:

所有平台:在 Dropbox 应用的 selective sync 设置中更改要同步的文件夹。 Linux Dropbox CLI: 或在终端中运行命令dropbox exclude add "FULL_PATH_TO_FILE_OR_FOLDER_TO_EXCLUDE"

如何忽略

要忽略文件从您的计算机同步到 Dropbox,您需要在终端中运行以下命令,同时将以下命令中的 FULL_OR_RELATIVE_PATH_TO_FILE_IN_DROPBOX 更改为您需要排除的文件/文件夹:

苹果机

    alias dropboxignore="xattr -w com.dropbox.ignored 1" dropboxignore "FULL_OR_RELATIVE_PATH_TO_FILE_IN_DROPBOX"

Linux

    alias dropboxignore="attr -s com.dropbox.ignored -V 1" dropboxignore "FULL_OR_RELATIVE_PATH_TO_FILE_IN_DROPBOX"

Windows - Powershell

Set-Content -Path "FULL_OR_RELATIVE_PATH_TO_FILE_IN_DROPBOX"
    -Stream com.dropbox.ignored -Value 1

【讨论】:

这是唯一适合我的答案!更新 Dropbox 客户端后,“排除”方法不再起作用,它会自动重命名带有“(选择性同步冲突)”的文件夹。 此功能从哪个版本的 Dropbox 客户端开始? 我不确定它的开头版本号。但是当前的 Dropbox 版本确实支持它。此外,dropbox exclude 命令仅适用于 Linux Dropbox CLI。所以dropbox exclude 在命令行中不适用于 Windows 或 Mac。但是可以使用 Dropbox 应用程序的设置来排除文件同步到您的计算机。使用提供的命令忽略在所有 3 个平台上都有效。在 Windows 上,它需要在 Powershell 中运行。 我无法在 Windows 7 上使用 Powershell。我收到以下错误消息: PS> Set-Content -Path .\Logs -Stream com.dropbox.ignored -Value 1 Set-内容:找不到与参数名称“流”匹配的参数。在 line:1 char:33 + Set-Content -Path .\Logs -Stream 感谢您的详细解答。我最近实现了dropboxignore,它是一个简单的shell 脚本,可帮助您根据文件模式甚至现有的.gitignore 文件生成.dropboxignore 文件,并忽略来自Dropbox 的匹配文件。希望发现它有用。任何反馈都非常受欢迎。【参考方案4】:

您可以将文件命名为 Dropbox 将其视为临时文件,这将阻止它同步。

例如。 .~myfile.foo

根据他们的帮助:https://www.dropbox.com/en/help/145 -

临时文件

当某些应用程序(如 Microsoft Word、Excel 或 PowerPoint)打开文件时,它们通常会在同一目录中保存一个临时文件,并以下列方式之一命名:

名称以 ~$(波浪号和美元符号)或 .~(句号和波浪号)开头

名称以波浪号开头并以 .tmp 结尾,例如 ~myfile.tmp Dropbox 不会在任何操作系统上同步这些临时文件。

【讨论】:

那么关于作者在此处描述的“._*”文件的具体建议是什么?我还注意到它说这样的“元数据和资源分支”会被故意忽略,但实际上并非如此。【参考方案5】:

这是一个脚本,它将使用 Powershell 在 Windows 上的当前文件夹和子文件夹中将 dropbox ignore 与 .gitignore 同步。它需要安装 git 命令行。

Get-ChildItem -Recurse | `
Where-Object  $_.Name -eq '.gitignore'  | `
ForEach-Object  `
    Write-Host $_.DirectoryName; `
    Push-Location $_.DirectoryName; `
    git status --ignored --short | `
      Where-Object  $_.StartsWith('!! ')  | `
      ForEach-Object  `
          $ignore = $_.Split(' ')[1].Trim('/'); `
          Write-Host $ignore; `
          Set-Content -Path $ignore -Stream com.dropbox.ignored -Value 1 `
      ; `
    Pop-Location `
 

【讨论】:

以上是关于有没有办法告诉 Dropbox 不要上传某个文件? (Eclipse 相关)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Valence Api 确定 Dropbox 文件夹的提交选项

iis 打开ASP文件报错500

有没有办法告诉 PowerPoint 在创建图表时不要打开 Excel?

有没有办法告诉 GCC 不要优化一段特定的代码?

Dropbox.Api 无法上传大文件

Dropbox网盘 文件上传过慢失败