C# 在C中访问UNC路径的最佳方法#

C# 在C中访问UNC路径的最佳方法#,c#,unc,gogrid,C#,Unc,Gogrid,我们正在构建一个将存储大量图像的应用程序。我们在GoGrid.com有一个虚拟化环境,我们希望利用他们的云存储 不知道该怎么说,但如果我们(在代码中)指定unc路径和cred来放置或检索映像,则效率似乎非常低(连接、获取映像、断开连接) 如果我们有大量的图像或许多用户同时执行此操作,那么它似乎会使任何普通服务器崩溃 所以我的问题是,如果你的网站没有巨大的驱动器,我们应该如何实现这一目标?再次,我们选择GoGrid cloud starge与Amazon S3,因为一切都在一把漂亮的伞下。云存储可

我们正在构建一个将存储大量图像的应用程序。我们在GoGrid.com有一个虚拟化环境,我们希望利用他们的云存储

不知道该怎么说,但如果我们(在代码中)指定unc路径和cred来放置或检索映像,则效率似乎非常低(连接、获取映像、断开连接)

如果我们有大量的图像或许多用户同时执行此操作,那么它似乎会使任何普通服务器崩溃

所以我的问题是,如果你的网站没有巨大的驱动器,我们应该如何实现这一目标?再次,我们选择GoGrid cloud starge与Amazon S3,因为一切都在一把漂亮的伞下。云存储可通过UNC路径和特定用户名/密码访问


谢谢

如果您认为您可能会随着时间的推移而更改文件访问方法,那么一定要将其抽象化。从一个简单的UNC实现开始,但稍后您可以更改为web服务或REST实现。

我以前没有使用过大容量访问服务器,但在我看来,您正在寻找一种非常轻量级的访问UNC路径的方法。Facebook有一个基于轻量级HTTP实现和刀片服务器的体系结构,使用一个10TB的文件系统实现负载平衡,但听起来还不太成熟。如果要最大限度地利用连接,请尝试按连接/读取/断开连接的顺序提取多个文件。需要注意的是,这会让你的用户等待更长的时间,而谷歌的20毫秒速度会导致用户数量下降20%。除此之外,我不知道还有比简单地访问路径更快的方法。

C#可以使用本地操作系统文件I/o,像本地路径一样使用unc路径。通常情况下,您不会“连接/检索/断开连接”,而是在建立到远程服务器的连接后将保持连接,就像映射驱动器一样。仅仅因为没有驱动器号,并不意味着没有连接


或者(对go grid一无所知),您可以只映射一个驱动器,也可以使用Windows中的脱机文件功能将最常访问的文件缓存在本地。

尝试设置某种映射驱动器,然后让代码获取文件并将其放入映射驱动器,这样做是否有意义(vs为每个请求连接?)如果我是你,我会把它作为一个UNC路径,在每个请求上连接,然后让系统的其余部分工作。一旦它工作了,我会看看文件访问方法是否会导致性能问题。我不会花时间假设它会导致性能问题。我正在努力解决访问存储在UNC上的文件的类似问题,用户可以连接一个mi当然,下一个不能,但下一分钟可以。我怀疑在我们的应用程序访问服务器后连接没有关闭,但我们只使用File.Copy和File.Exist from System.IO。我们如何明确管理“连接/读取/断开”序列?