iOS: проблема при отправке больших файлов (более 3 Гб) с помощью OutputStream (url:, append :) => Code Status 500 - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь отправить большие видеофайлы с помощью функции OutputStream (url: payloadFileURL, append :), но у меня код состояния 500 .(Я уточняю, что когда я отправляю 1 ГБ, 2 ГБ это работает как шарм)

Вот весь код: Отправка больших файлов с помощью OutputStream

private func buildPayloadFile(videoFileURL: URL, boundary: String, fileName: String, eventId: Int, contactId: Int, type: Int) throws -> URL {
    let mimetype = "video/mp4"

    let payloadFileURL = URL(fileURLWithPath: NSTemporaryDirectory())
        .appendingPathComponent(UUID().uuidString)

    guard let stream = OutputStream(url: payloadFileURL, append: false) else {
        throw UploadError.unableToOpenPayload(payloadFileURL)
    }

    stream.open()

    //define the data post parameter
    stream.write("--\(boundary)\r\n")
    stream.write("Content-Disposition:form-data; name=\"eventId\"\r\n\r\n")
    stream.write("\(eventId)\r\n")

    stream.write("--\(boundary)\r\n")
    stream.write("Content-Disposition:form-data; name=\"contactId\"\r\n\r\n")
    stream.write("\(contactId)\r\n")

    stream.write("--\(boundary)\r\n")
    stream.write("Content-Disposition:form-data; name=\"type\"\r\n\r\n")
    stream.write("\(type)\r\n")

    stream.write("--\(boundary)\r\n")
    stream.write("Content-Disposition:form-data; name=\"file\"; filename=\"\(fileName)\"\r\n")
    stream.write("Content-Type: \(mimetype)\r\n\r\n")
    if stream.append(contentsOf: videoFileURL) < 0 {
        throw UploadError.unableToOpenVideo(videoFileURL)
    }
    stream.write("\r\n")

    stream.write("--\(boundary)--\r\n")
    stream.close()

    return payloadFileURL
}

Любые идеи

1 Ответ

0 голосов
/ 18 декабря 2018

Ошибка 500 означает проблемы на стороне сервера.Причин может быть несколько:
- конфигурация на стороне сервера
- дисковое пространство сервера
- проблема с реализацией сервера

Пожалуйста, проверьте также свой код клиента:
- Тип содержимого
- Mime type
- Достаточно места на устройстве.Из-за этого большого файла потребуется больше места на устройстве для хранения в памяти во время «кэша»

...