Ionic 2:文件传输上传Windows 10移动版失败,适用于iOS和Android



我正在尝试将本地文件上传到Windows 10手机上的AWS S3。 我使用的代码适用于Android和iOS(在这里使用ionic原生包装器 https://ionicframework.com/docs/v2/native/transfer/):

fileTransfer.upload(pathToFile, s3Url, options)
.then((data) => {
// blah bah
}, (err) => {
// error, poop.
})

。但在 Windows 上失败并出现此错误:

{"code":3,
"source":"C:/Data/Users/DefApps/AppData/Local/Packages/com.rareprominence.addvideo2_h35559jr9hy9m/LocalState/cameraCaptureVideo.mp4",  
"target":"https://add-video-storage.s3.amazonaws.com/",  
"http_status":null,
"body":null,
"exception":null}

我真的只是在尝试上传之前拍摄了视频,所以我知道它存在。

问:这是Windows 10移动版和SSL的问题吗?我需要做一些额外的事情来允许通过HTTPS上传吗?

理论上,下载 AWS 证书应与任何其他 HTTPS 终端节点相同。

要概述步骤(从内存):

您正在获取 AWS 的证书并将其复制到应用程序本地文件夹。 然后在应用清单中引用该证书。 最后,还要在应用清单中包含终结点 URL(应与证书具有相同的域)。

我将从 Ionic 论坛帖子中复制(和编辑)详细信息:

Win 手机 aps 需要本地存储的证书才能通过 SSL 访问资源。

从服务器下载证书:通过浏览器进行,只需点击有问题的 URL 并单击 URL 栏中的挂锁或类似内容(每个浏览器都不同,或者您可以通过命令行中的 openssl 执行此操作)。

例如,在 Firefox 54 开发者版中,访问网址 (https://aws.amazon.com/s3/),然后单击网址栏中的绿色挂锁。 单击向右箭头以展开详细信息。然后单击"更多信息"链接,该链接将显示页面信息的安全选项卡。 选择"查看证书",然后转到详细信息选项卡并选择"导出"。 您可以在对话框中选择导出格式(这是您选择 DER 的位置)。

然后另存为 DER 类型 - 由于某种原因.cer扩展名。将证书保存到项目根目录,例如"aws-api-certificate.cer

将以下内容添加到 package.windows10..应用清单

<Extensions>
<!--Certificates Extension-->
<Extension Category="windows.certificates">
<Certificates>
<Certificate StoreName="Root" Content="aws-api-certificate.cer" />        
</Certificates>
</Extension>
</Extensions>

如果需要,可以通过此方法添加其他证书(我猜)。

确保将.cer包含在项目中,因为它需要包含在生成的包中。

确保在 Win 10 项目的终端节点列表中包含 AWS 终端节点 URL。 再次,来自论坛帖子:

确保 win 10 项目的 appxmanifest 文件包含内容 数据 API 的 URI:

https://api.example.com8(规则:包含和 WinRT:全部)

将 api-certificate.cer 文件复制到平台> Windows 文件夹中 (或使用 ./reload-platform Windows Powershell 脚本)。

自从我这样做以来已经有几个月了,所以如果有什么变化,请道歉(理论上不应该,但理论上理论很棒)。 祝你好运:)

相关内容

  • 没有找到相关文章

最新更新