【问题标题】:WP8 + Upload File to SkydriveWP8 + 上传文件到 Skydrive
【发布时间】:2013-01-07 02:51:15
【问题描述】:

我正在尝试将一个简单的 .cer 文件上传到 SkyDrive。无论我使用什么LiveConnectClient-Method,都没有任何反应。没有编译、运行时或其他异常,我的应用程序从未收到LiveOperationResult。我正在使用模拟器,并且能够登录到 MS Live(所以我的互联网连接很好)。以下是所用代码的摘录:

using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
{
  using(var fileStream = store.OpenFile(certPath, FileMode.Open, FileAccess.Read, FileShare.Read))
  {
    try
    {
      client = new LiveConnectClient(session);
      //LiveOperationResult operationResult = await client.UploadAsync("me/skydrive", certPath, fileStream, OverwriteOption.Overwrite, new System.Threading.CancellationToken(false), null);
      LiveOperationResult res= await client.BackgroundUploadAsync("me/skydrive",
                                                                  new Uri("/shared/transfers/cert.cer", UriKind.Relative),
                                                                  OverwriteOption.Overwrite);
      linkTextBlock.Text = "Done";

如前所述,TextBlock 从不显示“完成”。使用UploadAsyncBackgroundUploadAsync 方法没有区别。

【问题讨论】:

    标签: windows-phone-8 onedrive windows-live


    【解决方案1】:

    BackgroundUploadAsync 使用Windows Phone background file transfers,这是一个智能文件上传和下载调度系统。而 UploadAsync 使用即时 HTTP 文件上传和下载。

    使用后台文件传输即表示您同意以下上传限制:

    最大上传文件大小

    通过蜂窝连接 - 5 MB

    通过 Wi-Fi 连接并使用电池供电 - 20 MB

    通过 Wi-Fi 连接和外部电源 - 100 MB

    还有上传和下载队列的最大数量以及其他限制。阅读完整文档@http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202955(v=vs.105).aspx

    所有这些限制都可能导致您的 async await 等待。尽管后台文件传输设定的限制会带来最佳用户体验(即关闭应用程序时上传)、最佳电池寿命和最佳蜂窝数据使用率,但这是一种痛苦。最终由您的应用决定是直接使用 WebRequests (uploadAsync) 还是使用后台文件传输 (BackgroundUploadAsync)。

    【讨论】:

    • 此 API 是“智能的”,因此它会为您决定如何处理转账。假设您有一个类似 instagram 的应用程序,其中包含大量图片,您拍摄了 10MP 快照并分享它。它会认为“我现在不想发送它,我正在使用蜂窝网络”,即使您将 TransferPreferences 设置为允许使用电池和蜂窝网络。我认为他们设计它时没有区分笔记本电脑应用程序和手机应用程序。祝你 Instagram 视频好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    相关资源
    最近更新 更多