Ionic 2:FileTransfer 上传 windows 10 手机失败,适用于 iOS 和 Android
Ionic 2: FileTransfer upload windows 10 mobile fails, works on iOS and Android
我正在尝试将本地文件上传到 windows 10 phone 上的 AWS S3。我使用的代码适用于 Android 和 iOS(在此处使用 ionic-native wrapper 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 论坛复制(并编辑)详细信息 post:
Win phone aps 需要本地存储的证书才能通过 SSL 访问资源。
从服务器下载证书:通过浏览器进行,只需点击有问题的 URL 然后点击 URL 栏中的挂锁或类似按钮(每个浏览器都不同,或者您可以通过命令行中的 openssl 来完成。
例如在 Firefox 54 Developer 版本中,访问 url (https://aws.amazon.com/s3/),然后单击 URL 栏中的绿色挂锁。单击右箭头展开详细信息。然后单击 'more information' link 将调出页面信息的安全选项卡。选择 'view certificate',然后转到详细信息选项卡并选择 'export'。您可以在对话框中选择导出格式(这是您选择 DER 的地方)。
然后另存为 DER 类型 - 由于某种原因具有 .cer 扩展名。将证书保存到项目根目录,例如'aws-api-certificate.cer'
将以下内容添加到包中。windows10..appxmanifest
<Extensions>
<!--Certificates Extension-->
<Extension Category="windows.certificates">
<Certificates>
<Certificate StoreName="Root" Content="aws-api-certificate.cer" />
</Certificates>
</Extension>
</Extensions>
如果需要,可以通过此方法添加额外的证书(我猜)。
确保在项目中包含 .cer,因为它需要包含在构建的包中。
确保将 AWS 端点 URL 包含在您的 Win 10 项目的端点列表中。同样,来自论坛 post:
Make sure the win 10 project's appxmanifest file contains a content
URI for the data API:
https://api.example.com8 (Rule: include and WinRT: all)
Copy the api-certificate.cer file into the platform > windows folder
(or use the ./reload-platform windows powershell script).
我已经好几个月没做这件事了,所以如果有任何变化,我深表歉意(理论上,它不应该,但理论很棒,理论上)。祝你好运:)
我正在尝试将本地文件上传到 windows 10 phone 上的 AWS S3。我使用的代码适用于 Android 和 iOS(在此处使用 ionic-native wrapper 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 论坛复制(并编辑)详细信息 post:
Win phone aps 需要本地存储的证书才能通过 SSL 访问资源。
从服务器下载证书:通过浏览器进行,只需点击有问题的 URL 然后点击 URL 栏中的挂锁或类似按钮(每个浏览器都不同,或者您可以通过命令行中的 openssl 来完成。
例如在 Firefox 54 Developer 版本中,访问 url (https://aws.amazon.com/s3/),然后单击 URL 栏中的绿色挂锁。单击右箭头展开详细信息。然后单击 'more information' link 将调出页面信息的安全选项卡。选择 'view certificate',然后转到详细信息选项卡并选择 'export'。您可以在对话框中选择导出格式(这是您选择 DER 的地方)。
然后另存为 DER 类型 - 由于某种原因具有 .cer 扩展名。将证书保存到项目根目录,例如'aws-api-certificate.cer'
将以下内容添加到包中。windows10..appxmanifest
<Extensions>
<!--Certificates Extension-->
<Extension Category="windows.certificates">
<Certificates>
<Certificate StoreName="Root" Content="aws-api-certificate.cer" />
</Certificates>
</Extension>
</Extensions>
如果需要,可以通过此方法添加额外的证书(我猜)。
确保在项目中包含 .cer,因为它需要包含在构建的包中。
确保将 AWS 端点 URL 包含在您的 Win 10 项目的端点列表中。同样,来自论坛 post:
Make sure the win 10 project's appxmanifest file contains a content URI for the data API:
https://api.example.com8 (Rule: include and WinRT: all)
Copy the api-certificate.cer file into the platform > windows folder (or use the ./reload-platform windows powershell script).
我已经好几个月没做这件事了,所以如果有任何变化,我深表歉意(理论上,它不应该,但理论很棒,理论上)。祝你好运:)