NSURLSession 和后台流上传

2023-11-23

我在使用时遇到一些问题NSURLSession将照片从资源库上传到服务器。

首先NSURLSession不支持流式上传。我在尝试使用它时遇到了异常:

@property (nonatomic, strong) NSURLSession *uploadSession;

...

_uploadSession = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration
                backgroundSessionConfiguration:kUploadBackgroundURLSessionIdentifier] delegate:self delegateQueue:nil];

...

NSURLSessionUploadTask *task = [self.uploadSession uploadTaskWithStreamedRequest:URLRequest];

这是一个例外:

Terminating app due to uncaught exception 'NSGenericException', reason: 'Upload tasks in background sessions must be from a file'

这真的很奇怪,因为苹果的手册中没有包含任何有关仅使用的信息uploadTaskWithRequest:fromFile:用于后台会话。如果我想从资源库上传非常大的视频文件怎么办?我应该事先将其保存到我的 tmp 目录中吗?

看起来唯一的原因是使用uploadTaskWithRequest:fromFile:无论如何,对吧?但是我有一个问题,如果上传过程被中断并开始在后台上传下一部分,服务器如何知道现在正在上传文件的哪些部分?

我应该为此做点什么吗?以前,如果我想继续上传之前启动的部分文件,我会在 URL 请求中使用 Content-Range。现在我不能这样做 - 我必须在创建上传任务之前创建一个 URL 请求,看起来像NSURLSession必须自动为我做类似的事情吗?

有人已经做了类似的事情吗?谢谢


转换为NSData并复制并写入app文件夹

ALAsset *asset = [cameraRollUploadImages objectAtIndex:startCount];
ALAssetRepresentation *representation = [asset defaultRepresentation];

// create a buffer to hold the data for the asset's image
uint8_t *buffer = (Byte *)malloc(representation.size);// copy the data from the asset into the buffer
NSUInteger length = [representation getBytes:buffer 
                                  fromOffset:0 
                                      length:representation.size 
                                       error:nil];

// convert the buffer into a NSData object, free the buffer after
NSData *image = [[NSData alloc] initWithBytesNoCopy:buffer 
                                             length:representation.size
                                       freeWhenDone:YES];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSURLSession 和后台流上传 的相关文章

  • 如何在 iPhone 上缩小 UIPickerView?

    我想降低一个高度UIPickerView在我的 iPhone 应用程序中 使其仅显示一行和一列 选择器视图的高度应等于行的高度 我正在使用 Interface Builder 来构建UIPickerView 但我找不到调整此控件大小的简单方
  • 使用 OCMock 以代码块作为参数的存根方法

    有没有一种方法可以存根方法 以块作为参数 例如方法 void reverseGeocodeLocation CLLocation location completionHandler CLGeocodeCompletionHandler c
  • 在 iOS 上保存(私人)应用程序设置?

    我知道NSUserDefaults用于保存 恢复user优先 什么是等效类应用 例如 应用程序可能有一个 上次运行 字段 或者它可能有一个用于在应用程序级别使用的设备的唯一标识的字段 我的目的是将应用程序的设置 而不是用户的设置 保留在设置
  • iOS Facebook SDK - 远程定义 FacebookAppID

    使用iOS Facebook SDK 3 0 需要在应用程序的info plist中定义FacebookAppID和相关的URL Scheme 我想远程定义这些 向我自己的服务器请求应用程序 ID 所以有两个不同的问题 我可以在运行时更改应
  • iPhone 应用程序拒绝 17.2:应用程序要求用户使用 Facebook 帐户登录

    我按照此处的本机 iOS 应用程序的登录说明进行操作https developers facebook com docs mobile ios build https developers facebook com docs mobile
  • AutoLayout 将 UILabel 高度设置为零

    我有一个UILabel对于其他视图中的项目描述 所有内容均使用 Interface Builder 中的约束进行布局 您可以在下图中看到所有相关约束 行数也设置为0 我没有设置高度限制 因为我想要UILabel根据其包含的文本调整大小 相反
  • 如何使用 AudioKit 音序器设置不在曲目末尾的循环?

    有没有办法在 AKSequencer 中设置具有任意开始和结束时间戳的循环 正如我所看到的 方法 setLoopInfo 只允许您设置循环的末端恰好位于轨道的末尾 但我想在曲目中间设置一个循环 我知道 AudioKit Sequencer
  • 在 Xamarin 中读取 iOS 的相机权限

    我有一个用 Xamarin 开发的 iOS 应用程序 当应用程序没有访问麦克风的权限时 如果用户尝试从应用程序访问麦克风 我会使用以下命令检查设置AVAudioSession SharedInstance RequestRecordPerm
  • 将 React Native 应用程序嵌入到现有的 ios/android 应用程序中

    我需要知道是否可以在现有的 ios android 应用程序中 嵌入 一个 React Native 应用程序 而不共享 React Native 应用程序代码 我们目前有一个 React Native 应用程序 它使用一些插件依赖项 并被
  • WKWebView 中的调整大小处理程序中的 window.innerWidth/Height 未更新

    我有一些全屏网页内容 当窗口使用调整大小事件更改大小时 我会更新这些内容 window onresize function var width window innerWidth var height window innerHeight
  • 当我使用prepareForSegue将值传递给目标控制器时,存在一些问题

    首先 我使用storyboard创建两个uiviewcontroller 第一视图控制器 and 第二个视图控制器 并使用 xcode 嵌入导航控制器 into 第二个视图控制器 编辑器 gt 嵌入 gt 导航控制器 然后 我还想使用 se
  • swift 中 pch 的替代品是什么?

    我想知道可以用什么来代替 swift 中的 pch 有没有 pch 的替代方案或方法可以快速摆脱导入 这样我们就不需要对所有类都这样做 我不想一直随身携带 进口 swift 中 pch 的最佳替代品是什么 您无法在 swift 中定义 宏
  • 无法为 FacebookSDK 4 构建模块“FBSDKCoreKit”

    我在将 Facebook SDK 3 更新到 4 时遇到问题 当我添加框架时 它已成功添加 但是当我添加头文件时出现错误 无法构建模块 FBSDKCoreKit 不知道原因 在设置中 允许非模块化包含在框架模块中 设置为YES在构建设置中解
  • 隐藏故事板中的导航栏

    谁能告诉我如何隐藏故事板中的导航栏 我下面的代码在模拟器中运行时工作正常 但它仍然出现在我的故事板中 这真的很烦我 因为它弄乱了我的图像的位置 有人可以帮忙吗 void viewWillAppear BOOL animated super
  • UITableView 在单元格刷新时滚动到顶部

    我有一个 UITableView 其中一个单元格的大小是动态调整的 以适应其中的 UITextView 每当键入一个键时 单元格都会检查计算出的高度是否增加 就像换行符一样 因此它可以告诉表单元格的高度需要重新计算 我用这段代码做到了这一点
  • 符号化 iPad 崩溃日志后回溯仍然不可读

    我有这些崩溃日志 在我将它们放入管理器中后 会自动进行符号化 但结果始终相同 iOS 调用得到符号化 而我的应用程序调用则没有 我尝试将 Dym 和应用程序文件复制到同一文件夹中 删除并再次复制回来 没有任何帮助 知道发生了什么事吗 所以我
  • 带有 Retina-Tiles 的 MKTileOverlay

    我在 MKMapKit 中加载 512x512px 图块时遇到问题 服务器提供 512x512 jpeg 图块 我在 MKMapView 中找不到自定义视网膜图块的任何解决方案或示例实现 我做什么 当我将它们加载到 MKMapView 中时
  • 获取在 iOS UIFont 中追踪字符的路径

    假设我在 iOS 应用程序中使用了自定义字体 Foo 我已将其添加到我的项目 plist 等中 并且我能够渲染UILabels之类的就很好了 现在 如果我想找出可以 追踪 该字体中的字母 P 的点序列 我将如何获得该点序列 例如 假设我想使
  • 将 MPMoviePlayerController 的视图添加到 UIView

    我想添加MPMoviePlayerController to a UIView 首先 我在 xib 文件中放置了一个视图 名为 youTubeView youtube播放器是MPMoviePlayerController youtubePl
  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我

随机推荐

  • 在 C++ 中将宽字符字符串转换为小写

    如何在 C 中将 wchar t 字符串从大写转换为小写 该字符串包含日语 中文 德语和希腊字符的混合体 我想过用塔罗 http msdn microsoft com en us library 8h19t214 28VS 80 29 as
  • Android 棒棒糖工具栏在打开/关闭抽屉和后退按钮之间切换

    我有标准导航抽屉 但现在我正在尝试使用工具栏修改它 早些时候我的代码看起来像 MainActivity java Override protected void onCreate Bundle savedInstanceState supe
  • 从 TensorFlow 图中删除 dropout 操作

    我有一个经过训练的冻结图 我正在尝试在 ARM 设备上运行它 基本上 我使用 contrib pi examples label image 但使用我的网络而不是 Inception 我的网络接受了 dropout 训练 这现在给我带来了麻
  • 无法在 Windows 8 上使用 SetSystemTime 设置时钟

    我的应用程序使用SetSystemTime 从 GPS 源设置 PC 时钟 这在禁用用户帐户控制的 Windows 7 中工作正常 但在 Windows 8 中 即使禁用 UAC 它也会失败 我得到的错误是ERROR PRIVILEGE N
  • 压缩和解压缩流

    我发现这篇关于用JAVA实现简单代理服务器的文章 http www java2s com Code Java Network Protocol Asimpleproxyserver htm 该代码只是从客户端获取一些流 然后将其发送到服务器
  • UITextView 高度在键入/不使用故事板时动态更改

    我有这个 UITextView 我希望它的高度在用户在其上打字时动态变化 我想以编程方式完成它 我的 UITextView 位于另一个 UIView 之上 约束条件设置如下 addtextview leadingAnchor constra
  • SignalR with IoC (Castle Windsor) - 集线器的寿命是多少?

    我刚刚开始使用 SignalR 并为 SignalR 创建了一个自定义解析器 因此我可以使用 Castle Windsor 通过集线器构造函数注入依赖项 我有点假设我只需要注册依赖项 但我发现在我的应用程序运行之前还需要注册集线器本身 这是
  • 针对 Core 2 或 Core i7 架构全面优化 memcpy/memmove?

    配备 DDR3 双通道内存的 Core 2 处理器的理论最大内存带宽令人印象深刻 根据维基百科文章在架构上 每秒 10 或 20 GB 然而 普通的 memcpy 调用无法实现这一点 3 GB s 是我在此类系统上见过的最高速度 这可能是由
  • 提交前确认表单

    我正在使用一个简单的表单 我想允许用户在表单提交之前进行确认 我知道使用 jQuery 这会很容易 但我对代码有点困惑 function testform submit function submitbtn text confirm 我知道
  • 如何在 Angular 4 中使用 ngStyle 作为背景 url

    我有以下 html li div class w3l banner nav right banner1 style background url assets images 2 jpg no repeat 0px 0px h3 Make y
  • Python tf-idf:更新 tf-idf 矩阵的快速方法

    我有一个包含数千行文本的数据集 我的目标是计算 tfidf 分数 然后计算文档之间的余弦相似度 这就是我按照教程在 Python 中使用 gensim 所做的事情 dictionary corpora Dictionary dat corp
  • Spring Boot 是否可以通过 JAR 打包来提供 JSP?

    我熟悉 Spring BootJSP 示例应用程序 然而该示例使用了WAR包装 是否可以做同样的事情
  • 引用 UWP 和 ASP.NET 5 中的类库

    我正在尝试创建一个类库 其中包含 WebAPI 使用 ASP NET 5 和消费 UWP 应用程序的常见对象 主要是 DTO 但是 我还没有弄清楚如何创建类库 以便可以从其他项目中引用它 到目前为止我已经尝试过 首先 我尝试了一个类库 包
  • 使用 axios.get 时套接字挂起,但使用 https.get 时套接字不挂起

    据我所知 我正在使用两种不同的方法做同样的事情 const https require https const axios require axios let httpsAgent new https Agent rejectUnautho
  • 如何在命名空间中使用连字符?

    我在用https packagist org packages bitdevelopment yii2 validators Yii2 中的字数验证 但我得到 gt PHP Parse Error yii base ErrorExcepti
  • 如何排除`node_modules/@types/**/node_modules`?

    我遇到过一种情况 其中的类型定义node modules types正在安装自己的 types 依赖项 并且这些 嵌套 types 与我的顶级 types 冲突 types angular v1 5 angular ui bootstrap
  • Lucene - 短语中的通配符

    我目前正在尝试使用 Lucene 来搜索索引中填充的数据 我可以通过将其括在括号中来匹配确切的短语 即 处理文档 但无法让 Lucene 通过执行任何类型的 处理文档 来找到该短语 明显的区别是末尾的通配符 我目前正在尝试使用 Luke 来
  • Perl:使用变量传递正则表达式搜索和替换

    我有一个 Perl 脚本 它读取正则表达式搜索并替换 INI 文件中的值 在我尝试使用捕获变量 1 或 1 之前 这工作正常 这些被逐字替换为 1 或 1 有什么想法可以让这个捕获功能通过变量传递正则表达式位吗 示例代码 不使用 ini 文
  • 在 Renderscript 计算中将数组传递给 rsForEach

    据我所知 我发现 RenderScript 缺乏良好的文档 forEachRS 中的方法是对分配中的每个单独项目执行 root 我正在尝试为 Renderscript 制作一个进行图像处理的库 作为起点 我达到了这个很好的答案 但问题是模糊
  • NSURLSession 和后台流上传

    我在使用时遇到一些问题NSURLSession将照片从资源库上传到服务器 首先NSURLSession不支持流式上传 我在尝试使用它时遇到了异常 property nonatomic strong NSURLSession uploadSe