Tôi hiện đang trong quá trình thiết kế hệ thống tải nhiều hình ảnh lên máy chủ từ một ứng dụng. Các tệp sẽ được lưu trữ trên thiết bị cục bộ và ý tưởng hiện tại là chia chúng thành các phần và sau đó tải chúng lên từng đoạn một, gửi thư thành công trước khi tải lên bản tiếp theo.iOS 7 - NSURLSession Tải lên Resumable
Quá trình này phải liền mạch cho người dùng, họ nên nhấn nút để gửi tất cả hình ảnh và sau đó có thể đóng ứng dụng và để tiếp tục ở chế độ nền. Với iOS 7, tôi đã thấy rằng bạn có thể chuyển các video tải lên của mình lên API NSURLSession mới và giải quyết vấn đề tải lên độc lập với ứng dụng của bạn.
Tôi đã tự hỏi liệu có ai biết mức độ tin cậy của chuyển khoản này không. Nếu tôi chuyển toàn bộ hình ảnh, điều gì sẽ xảy ra nếu kết nối internet giảm một nửa? Dịch vụ chuyển nền có thử lại sau không? Ý tưởng là chúng ta có thể tải lên một hình ảnh, và nếu nó thất bại một nửa thông qua đó chúng ta chỉ có thể tiếp tục từ thời điểm đó sau này khi kết nối được nối lại.
Một ý tưởng chúng tôi có là chia nhỏ các tệp thành các phần và sau đó chuyển tất cả các đoạn như NSURLSessionUploadTasks riêng biệt và giả định rằng tất cả chúng sẽ được gửi đến máy chủ cuối cùng.
Một là để gửi các đoạn đầu tiên sử dụng:
uploadTaskWithRequest:fromData:completionHandler:
Và sau đó trong completitionHandler để sau đó gửi đoạn tiếp theo. Vấn đề của tôi với điều này là nếu ở chế độ nền các đoạn tiếp theo sẽ có nó
@property BOOL discretionary = true
có nghĩa là nó sẽ chỉ gửi qua WiFi khi cắm vào. Tôi cần làm việc này trên tất cả các mạng và có thể đối phó với interuptions.
Tôi không muốn bất kỳ mã nào, chỉ cần tư vấn nếu đây là cách chính xác để thực hiện việc này.
nếu tôi đang sử dụng đại biểu, khi ảnh trước đó được tải lên, trong cuộc gọi lại đại biểu hoàn thành, tôi có thể xếp hàng tác vụ tải lên ảnh tiếp theo. đúng không? -thanks –
Bạn nói đúng, bạn có thể làm điều đó. –
@ErbenMo Hãy cẩn thận, Nếu chuyển nền được bắt đầu trong khi ứng dụng ở chế độ nền, thuộc tính tùy ý của đối tượng cấu hình được coi là đúng. Khi cờ này được đặt, chuyển có nhiều khả năng xảy ra khi được cắm vào nguồn và trên Wi-Fi. Giá trị này là false theo mặc định. Nếu một tác vụ được khởi động trong khi ứng dụng ở chế độ nền, nhiệm vụ đó được coi là mặc dù tùy ý là đúng, bất kể giá trị thực của thuộc tính này. Do đó, các video tải lên tiếp theo của bạn có thể không xảy ra cho đến khi bạn sử dụng WiFi và được cắm. –