问题标签 [cifs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1534 浏览

google-drive-api - 带有 Google Drive 的 WebDAV 或 CIFS

我正在尝试为 MDM 创建一个附加组件,该附加组件可以通过 WebDAV 或 CIFS(仅支持 MDM 的协议)与数据存储库(特别是 Google Drive)集成。MDM 在移动设备、平板电脑或手机上创建一个“安全”容器,以防止通过策略对文件进行某些操作。WebDAV 和 CIFS 都有一个文件锁定机制,可以很好地与 Sharepoint(签入/签出)配合使用,但与 Google Drive 提供的实时协作(仅限本机 Gdocs)背道而驰。我在 Google Drive 中使用这些协议方面没有发现太多,并且想知道为什么还没有创建解决方案。基本上,我试图弄清楚它是否值得启动该项目,或者我是否会遇到限制或阻止功能的障碍。

0 投票
2 回答
5760 浏览

centos - 断开连接时尝试访问使用 CIFS 挂载的远程文件夹会挂起

这个问题是那个问题的延伸。

再一次:我在 CentOS 6.0 下工作,我有一个远程 win7 文件夹,安装有:

当远程文件夹不可用时(例如,网络电缆被拔出)尝试访问远程文件夹会锁定我正在处理的应用程序。起初我检测到 QDir::exists() 导致锁定 20-90 秒(我仍然无法找出为什么会有这种差异),进一步我检测到任何对 stat() 函数的调用都会导致应用程序锁定。

我遵循了上面主题中提供的建议,我将 QDir::exists() 调用(以及后来 - 对 stat() 函数的调用)移动到另一个线程,但这并没有解决问题。当连接突然丢失时,应用程序仍然挂起。Qt 跟踪显示锁在内核中的某处:

在尝试访问文件夹本身之前,我还尝试检查远程共享是否仍然挂载,但这没有帮助。方法如:

显示共享文件夹仍然挂载,即使没有与网络的活动连接。

检查文件夹状态差异,例如:

也挂起〜20秒。

所以我有几个问题:

  1. 有没有办法改变 CIFS 超时?我确实试图找出答案,但似乎没有适当的参数,也没有 CIFS 配置。
  2. 如何检查远程文件夹是否仍然挂载并且没有被锁定?
  3. 如何检查文件夹是否存在并且没有被锁定?
0 投票
1 回答
2690 浏览

arrays - Powershell数组值,连接数据

这是一个令人痛苦的问题,但在这里。我正在创建一个 powershell 脚本来报告 netapp 上的文件管理器共享。我已经到了可以创建所有共享报告的地步,但我现在要做的是从 CSV 输出中获取我创建的数组并提取共享名值。但是我想在这个值前面附加服务器名“\filer\”,以便它创建一个 UNC 路径。

我打算查看 UNC 并使用它来生成有关文件管理器共享的信息。NTFS 权限、路径信息等。

这是代码:

这是创建一个数组,然后向数组添加一个新属性以匹配我的 UNC 信息...

然后我运行一个选择对象来清理输出:

这会产生一个新的 csv,当我在 excel 中打开它时它会很好且有条理。

但是现在我想获取对象“filer”和“sharename”并将它们放在一起以生成这样的 UNC 路径:

我想也许我可以使用如下的 foreach 循环:

然而这不起作用......我认为必须有一些不同的想要这样做,所以我很感激任何关于这方面的指导。简单的问题,但我的 powershell 非常糟糕(尽管它越来越好)。

此外,我正在使用 Netapp Powershell 工具包获取有关共享的信息,以生成原始共享列表数组。

感谢大家。

0 投票
0 回答
1718 浏览

http - CIFS/SMB 与 HTTP/RTSP 流共享视频文件

我正在为多个客户端设计一个视频管理系统,其中录制服务器应该将视频剪辑录制到其本地驱动器,然后每当客户端想要播放这些录制的视频时,它都应该与客户端共享。对此似乎有两种方法:

  1. 使用 Windows 文件共享协议(如 SMB/CIFS)将驱动器共享给所有客户端 - Windows 最多允许 20 个客户端,一旦驱动器被共享,它将被每个客户端映射为本地驱动器,客户端可以查看要访问的任何文件被回放
  2. 使用流服务器并根据客户端请求,流式传输(HTTP/RTSP 流式传输)客户端所需的特定文件(单独的线程来侦听并将所需文件流式传输到每个客户端),在这种情况下,服务器管理将变得乏味,因为客户数量增加

谁能让我知道每种方法的优缺点,以便我可以为此设计一个有效的架构?我见过的大多数视频管理软件似乎都在使用第二种方法,这样做有什么特别的优势吗?

问候, 索拉布·甘地

0 投票
2 回答
1474 浏览

c - C - 如何将文件从 cifs 挂载移动到本地硬盘

当我尝试将文件从 cifs 挂载重命名到本地路径(将文件从服务器移动到本地硬盘)时,我得到 -1。我可以删除文件,也可以添加新文件,只是不能使用 rename() 函数来完成。该程序以 root 身份运行,并且 cifs 挂载中的用户对共享和服务器上的本地文件系统具有完全权限。

服务器:Windows XP SP3 x32

本地:Ubuntu 13.04 x64

smb 挂载:

C代码:

0 投票
0 回答
376 浏览

c# - 在 CIFS 共享上使用 GetDiskFreeSpaceEx (C#)

我正在尝试使用 WIN Api 功能GetDiskFreeSpaceEx()来获取 CIFS 共享上的可用磁盘空间。我发现这个函数在磁盘格式化后返回不同的值。

所以这是我的步骤:

  1. 创建 CIFS 共享文件夹。
  2. 打电话GetDiskFreeSpaceEx()。它返回正确的值。
  3. 使用共享文件夹格式化磁盘。
  4. 在磁盘上重新创建文件夹。(分享没有停止)
  5. 打电话GetDiskFreeSpaceEx()。它返回 0。
  6. 再打电话GetDiskFreeSpaceEx()。现在它返回正确的值。并且该函数的所有下一次调用都返回正确的值。

我还发现,当我在格式化磁盘后停止共享文件夹并重新开始共享它时,GetDiskFreeSpaceEx()总是返回正确的值。

你对这种情况有什么想法吗?

0 投票
2 回答
65433 浏览

linux - 从 centos 挂载远程 Windows 共享

我正在尝试设置一个脚本,它将:

  1. 连接到 Windows 共享
  2. 使用 LOAD DATA LOCAL INFILE,将这两个文件上传到相应的数据库表中
  3. 卸载共享

情况:
我目前可以 vpnc 进入这台远程机器

问题:
我不能

我正在尝试首先手动执行此操作
远程服务器对端口 445 开放

问题:

  1. 我什至需要先使用 vpnc 吗?
  2. 我需要在 vpnc 之后为远程 ip/mask/gw 添加路由吗?

谢谢!

0 投票
0 回答
647 浏览

cifs - Logstash 最初读取但随后停止从 CIFS 网络共享读取日志文件

我已经在 CentOS 服务器上设置了一个 logstash,以通过 CIFS 挂载从我们的生产 Web 服务器 IIS 日志中读取。

但是,在最初阅读了最初的大量日志之后,它就死了。

时间序列消亡 (之后提升的数据来自不同的数据源)

我从这个线程中尝试了来自 Jordan 的 hack ,但它似乎不起作用

由于安全问题,我们故意避免在我们的前端 Web 服务器上安装 Java/Logstash。那么,你能想出一种方法来完成这项工作吗?

0 投票
1 回答
956 浏览

git - 访问 Windows 共享时出现 git 错误“无法将某些引用推送到”

当我尝试将我的存储库推送到已安装的 Windows 共享时,我收到以下错误消息:

我尝试了很多在其他帖子上发现的东西,但它们对我不起作用:

我还更改了文件权限:

驱动器上也有足够的空间。

0 投票
1 回答
1159 浏览

database - 在分布式系统中锁定文件

我有一个分布式应用程序;也就是说,我有一个在多台计算机上运行的同构进程与中央数据库通信并访问网络文件共享。

此过程从网络文件共享中获取集合文件(通过 CIFS),对这些文件运行转换算法并将输出复制回网络文件共享。

我需要锁定输入文件,以便其他服务器——运行相同的进程——不能处理相同的文件。为了争论,假设我的描述过于简单化并且锁是绝对必须的。

这是我提出的解决方案,以及一些想法。

1)使用机会锁(oplocks)。此解决方案仅使用文件系统来锁定文件。这里的问题是我们必须尝试获取锁才能确定锁是否存在。由于网络重定向器协商锁定,这似乎很昂贵。这样做的好处是,可以以这样一种方式创建 oplock,当出现错误时它们会自动删除。

2) 使用数据库应用锁(通过 sp_getapplock)。这似乎会快得多,但现在我们使用数据库来锁定文件系统。此外,数据库应用程序锁可以通过事务或会话来限定范围,这意味着如果我想保持——然后释放——应用程序锁,我必须保持连接。目前,我们正在使用连接池,这将不得不改变,这本身可能是一个更大的对话。这种方法的好处是,如果我们失去与服务器的连接,锁将被清除。当然,这意味着如果我们失去了与数据库的连接,而不是网络文件共享,那么当我们仍在处理输入文件时,锁就会消失。

3)创建一个数据库表和存储过程来表示我想锁定的项目。这个过程很简单。这当然是潜在的网络错误。如果由于某种原因,数据库变得不可访问,锁将保持有效。然后我们需要派生一些算法来在以后清理它。

什么是最好的解决方案,为什么?答案不限于上面提到的那些。