文档中心 > 店铺动态卡片-开发指引

PC 千牛本地路径的处理说明

更新时间:2021/02/19 访问次数:3525

背景

由于小程序文件系列 API 的需要,以及安全方面的原因,PC 千牛小程序容器建立了一套虚拟路径体系。但开发者经常会直观地想要操作真实物理路径,因而引发了很多困惑。现将这套虚拟路径和体系详细介绍一下,以及给开发者一些处理本地文件的建议。

虚拟路径(apFilePath)体系

我们所说的虚拟路径地址主要是指如下几类“URL”:

URL(虚拟路径)

说明

用途

https://appres.wiflill.com/publictmp/...

公共临时文件(不隔离)

临时存放

https://appres.wiflill.com/file/...

私有文件路径(每小程序隔离)

被永久保存的文件

https://appres.wiflill.com/img/...

私有图片路径(每小程序隔离)

被永久保存的图片

https://appres.wiflill.com/plugin/file/...

插件文件路径(每小程序、每插件隔离)

被永久保存的文件,用于插件

https://appres.wiflill.com/plugin/img/...

插件图片路径(每小程序、每插件隔离)

被永久保存的图片,用于插件

为描述方便,下文指代这几类虚拟路径类型的时候,分别用“<tmp>”、“<file>”、“<img>”、“<plugin/file>”、“<plugin/img>”来描述。在不需要特意区分“<file>”和“<plugin/file>”的场景统一用“<file>”,在不需要特意区分“<img>”和“<plugin/img>”的场景统一用“<img>”。用“<any>”指代所有类型虚拟路径。

以上信息只是为了更好的理解而向开发者说明,平台并不保证未来维持一直这种模式不变。开发者不要去识别虚拟路径中的 publictmp、file、img 等名称,以免未来业务受影响。域名“appres.wiflill.com”在一定程度上是稳定的,但也请只在特别必要的情况下去识别此域名。

API 介绍

文件系列

名称

功能

主要入参

主要出参

文件流向

my.getFileInfo

获取文件信息

apFilePath

文件大小及其他

读取 <any>

my.saveFile

保存文件到本地

URL 或

apFilePath

新的 apFilePath

网络 => <tmp> 或

<tmp> => <file>

my.getSavedFileInfo

获取保存的文件信息

apFilePath

文件大小及其他

读取 <file>

my.getSavedFileList

获取保存的所有文件信息

/

apFilePath 列表

枚举 <file>

my.removeSavedFile

删除某个保存的文件

apFilePath

/

删除 <file>

图片系列

名称

功能

主要入参

主要出参

文件流向

my.chooseImage

选择图片

/

apFilePath

本地 => <img>

my.saveImage

保存图片

URL

新的 apFilePath

网络 => <img>

my.getImageInfo

获取图片信息

URL 或

apFilePath

 

apFilePath

网络 => <tmp>

读取 <img> 类型虚拟路径

网络系列

名称

功能

主要入参

主要出参

文件流向

my.uploadFile

上传文件

apFilePath

/

<any> =>网络

my.downloadFile

下载文件

URL

apFilePath

网络 => <tmp>

千牛扩展

API 名称

功能说明

主要入参

主要出参

文件流向

my.qn.chooseFile 选择文件

/

apFilePath

本地 => <tmp>

my.qn.saveFileToDisk

保存文件到磁盘

apFilePath

/

<any> => 本地

API 汇总说明

整体梳理

image.png

 

网络到虚拟路径

  • my.saveFile(参数 apFilePath 为 URL 时)
  • my.downloadFile
  • my.getImageInfo(参数 src 为 URL 时,返回结果的 path 为 <tmp> 虚拟路径)
  • my.saveImage

虚拟路径到网络

  • my.uploadFile

虚拟路径到本地

  • my.qn.saveFileToDisk

本地到虚拟路径

  • my.chooseImage
  • my.qn.chooseFile

常规的“下载到本地”和“从本地上传”的实现方式

  • 下载到本地:首先使用 my.downloadFile(或其他 API)得到虚拟路径,然是使用 my.qn.saveFileToDisk 保存到用户可感知的本地路径。
  • 从本地上传:首先使用 my.qn.chooseFile 从用户可感知的本地路径选择文件,得到虚拟路径,然后使用 my.uploadFile 上传。

关于本地路径的其他说明

在整个 PC 千牛小程序体系,由于安全方面的原因,本地路径被设计成不向开发者透出,只可能被用户感知。以 my.qn.chooseFile 和 my.qn.saveFileToDisk 为例,前者会使用系统的“打开文件对话框”让用户从本地路径选择文件,然后生成虚拟路径;后者会使用系统的“保存文件对话框”,将虚拟路径对应的文件生成到用户指定的本地路径。开发者如果遇到需要感知本地路径的场景,请从产品、业务角度做适当的调整,来适配千牛的安全要求。

如有进一步问题,请联系技术支持。

 

 

 

 

 

 

 

 

 

 

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部