问题标签 [fileprovider]

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 投票
1 回答
79 浏览

cloud-storage - 如何将云存储提供商挂载为驱动器?

我正在基于这个 repo为 Windows 创建一个自定义云存储提供程序。如本文所述,我已删除 Windows 文件管理器中的根节点。现在我需要将它安装为驱动器。

如何将我的自定义云存储提供商显示为驱动器?

0 投票
1 回答
851 浏览

macos - 如何启用和调试 macOS 文件提供程序扩展?

我正在尝试在带有文件提供程序扩展的 macOS Big Sur 11.2.2 上使用 Xcode 12.5 Beta 3 构建准系统应用程序。我使用 Xcode 的 beta 版本,因为以前的版本不提供文件提供程序扩展的模板(GitHub 上的示例项目)。

该应用程序及其扩展程序在其权利中设置了一个通用应用程序组,并由我的个人团队和开发证书自动签名。

我构建并运行了我的应用程序和扩展程序。但是,据我所知,我现在可以控制它何时(卸载),因为这取决于系统。

观察

  1. 文件提供程序扩展永远不会出现在系统首选项中。
  2. 控制台应用程序不提供具有不同项目名称的任何有意义的信息,除了“lsd (LaunchServices)”检查应用程序是否受管理。
  3. 扩展程序不会显示在活动监视器中。
  4. Pluginkit 报告要找到的扩展,但会添加一个感叹号(运行时pluginkit -vvvvmi SomeOrganization.SomeProduct.SomeProvider)。
  1. 通过子系统过滤系统控制台com.apple.FileProvider我在构建扩展后偶然发现了这些消息(我必须按照这个答案中的描述显示私有值):

还有另外两个PhotosFileProvidercom.apple.CloudDocs.MobileDocumentsFileProvider我猜)是无关的。报告相同的PhotosFileProvider警告。上述路径可以扩展为:

其中包含Domains.plist具有此(二进制)内容:

问题

我没有找到任何关于感叹号的含义或如何找出实际问题的信息。我该如何调试呢?控制台中的错误令人怀疑。在我看来,我在拼图中遗漏了一些在文档中没有提到的部分,比如操作方法中的一个秘密步骤。

供参考:我在 Apple Developer Forums 中的问题

0 投票
0 回答
83 浏览

macos - 如何在文件提供程序中的 macOS 上实现“始终保留在此设备上”?

我正在macOS 上实现文件提供程序。我看到 OneDrive 具有“始终保留在此设备上”和“释放空间”菜单的离线模式:

在此处输入图像描述

在 Windows 上,此功能由 Pinned 和 Unpinned 文件属性以及 CfHydratePlaceholder() 和 CfDehydraPlaceholder() Windows API 提供。如何在 macOS 上实现此功能?是否有任何特定的属性或文件提供程序 API 来支持它?

0 投票
1 回答
200 浏览

c# - 升级到 .NET Core 3.1 - 无法在服务中实例化单例 PhysicalFileProvider

我有一个 .NET Core 解决方案,其中包含一个针对 .NET Core 2.1 的 API 项目,我将其升级到 .NET Core 3.1。我已经意识到这样做有许多重大变化,我已经经历了这些变化并对其进行了修改以使其兼容(例如转换UseMvcUseRouting等)。但现在我被困在一个:

当我尝试运行 API 项目时,出现以下运行时错误:

无法构造某些服务(验证服务描述符“ServiceType:Microsoft.Extensions.FileProviders.IFileProvider Lifetime:Singleton ImplementationType:Microsoft.Extensions.FileProviders.PhysicalFileProvider”时出错:没有“Microsoft.Extensions.FileProviders”类型的构造函数。 PhysicalFileProvider' 可以使用服务容器中的服务和默认值来实例化。)

在 Startup.cs 的 ConfigureServices 中,有:

这当然是问题所在。但我不确定如何将其转换为既兼容又让 API 以原来的方式工作。

我确实找到了一篇关于文件提供程序的文章,其中指出:

FileProviderSample 示例应用使用 IHostEnvironment.ContentRootFileProvider 在 Startup.ConfigureServices 方法中创建提供程序:

var physicalProvider = _env.ContentRootFileProvider;

但目前尚不清楚 ConfigureServices 中应该去的确切位置......或者它是否取代了AddSingleton......或者这将如何影响 API 的行为。所以我不知道该怎么办。

0 投票
0 回答
164 浏览

android - 运行 Android 10 的三星设备上 FileProvider 的 ClassNotFoundException

根据 Play 商店崩溃报告,该问题仅出现在运行 Android 10 的三星设备上,100% 在后台运行。我们发布了一个库,我们的客户将其集成到他们的应用程序中,我们或客户都没有设法在我们自己的测试中产生崩溃,并且没有其他客户报告过类似的事情。

我们的库中有一个自定义的 FileProvider 子类,我们的客户端在上述设备上遇到了这个崩溃:

我们检查了客户端的 APK,提供者正确地列在了他们的合并清单中,并且类在 classes.dex 文件中以及正确的字节码内容。

0 投票
1 回答
314 浏览

c# - 依赖注入自定义文件提供程序以进行运行时编译

我正在尝试从数据库加载视图,并且正如文章中所建议的那样,可能需要添加一些缓存以防止每次都访问数据库。

ConfigureServices

DatabaseFileProvider构造函数:

我如何依赖注入类的实例IMemoryCacheDatabaseFileProvider,就像一个单例一样:

ConfigureServices

AppUtils构造函数:

0 投票
0 回答
11 浏览

asp.net-core-3.1 - .Database FileProvider + 依赖注入 =>InvalidOperationException:之前在此上下文上启动了第二个操作

我实现了一个自定义 IfileProvider,它将获取数据库中文件的内容。用途之一是去获取 css。问题是我经常遇到类型错误

InvalidOperationException:在前一个操作完成之前在此上下文上启动了第二个操作。这通常是由使用相同 DbContext 实例的不同线程引起的。有关如何避免 DbContext 线程问题的更多信息

我认为起源是我在启动时使用依赖注入。我尝试了所有类型的配置,但没有结果。

我的文件 :

启动

数据库文件提供者

数据库文件信息

数据库变更令牌

我通过将 IappBuilder 直接传递给 DatabaseFileProvider 解决了这个问题

但我认为这不是最好的方法。

你有想法吗?

谢谢你。

0 投票
0 回答
189 浏览

android - 适用于 Android 11+ 的可移动 micro-sd 卡上的文件的 ContentProvider

由于 FileProvider 无法从 micro-sd 卡提供服务,因此必须制作自己的扩展 ContentProvider。

所以我前段时间做过。并且适用于 11 以下的所有 Android 版本。

它可以提供来自整个设备的文件,包括 micro sd 卡。

同样来自私有 getExternalFilesDirs()[0] 和 getExternalFilesDirs()[1]。

现在在同一个 micro-sd 上看到这两条路径:

他们可以服务。

但在 Android 11+ 设备上,HTMLViewer 和 Chrome 只能处理第一条路径。应用程序本身始终可以使用路径或自己的提供程序处理自己的文件。

在 Android 11+ 上,使用 ACTON_VIEW 选择并使用 .readLine() 从 uri 读取的应用程序可以处理第一个路径,而第二个路径失败。我终于可以通过不使用 .readLine() 而是查看 .available() 并从输入流直接执行 .read() 来为我自己的应用程序解决它。

这是我使用的提供者类:

在 AndroidManifest.xml 中:

对 ACTIEN_VIEW 意图使用以下 uri。(将 1234-5678 相应地更改为使用的 micro sd 卡)

首先在提供的应用程序中测试 uris。

以下意图用于启动外部应用程序。

我的问题是:为什么在 Android 11 和 12 上,用于 micro sd 卡上的文件的 ContentProvider 对来自不同位置的文件的作用不同?

我可以解决 .txt 文件的读取问题,但如果我的外部应用程序想要保存编辑,它会失败。

更新(11 月 5 日):

仅使用 MANAGE_EXTERNAL_STORAGE。想到目录树深处的文件会受到这种行为的影响。所以我复制了

后者通过外部应用程序查看和编辑没有问题。问题仅适用于 micro sd 卡上应用程序特定目录中的文件。

0 投票
1 回答
16 浏览

ios - 为什么我的文件提供程序在文件应用程序中的位置是灰色的(非活动的)

我有一个可用的文件提供程序扩展,但如果我转到相册,例如,共享一张照片并选择“保存到文件”,我的文件提供程序位置会出现在列表中,但它是灰色且不活动的,因此无法选择。

我需要做什么才能启用它?

0 投票
1 回答
80 浏览

android - Android 10 将文件写入公共 DCIM 目录,非弃用方法

我们有一个 Android 应用程序,现场工作人员可以在其中拍摄照片,这些照片存储在他们的手机上,并通过网络 API 上传。如果上传失败,他们确实有重试机制,但有时他们需要求助于从手机中提取图像。为了将应用程序升级到 Android 10 版本而不弃用,我被迫将图像写入应用程序内部目录。问题是当他们升级他们的应用程序时,他们会从应用程序中丢失他们的照片。(我也将图像复制到备份目录,但这看起来有点笨拙)

我想将图像写入:/storage/emulated/0/DCIM/GoTrialImages

相反,他们将去:/storage/emulated/0/Android/data/au.come.aceware.ktr.ktr/files/DCIM/GoTrialImages/photoIntent(其中 photoIntent 是发生这种情况的活动)

这是我从在线文章中复制和调整的代码:

这是清单中的文件提供程序条目: