Как загрузить файл UIDocumentPickerViewcontroller в AWS S3 TransferUtility Swift

Я пытаюсь выбрать некоторые файлы из UIDocumentPickerView и загрузить в AWS S3 с TransferUtility. Здесь я не могу передать имя файла, размер и данные файла для загрузки функции. Кроме того, статус функции загрузки должен отображаться в UITableView.

Здесь ниже мой код:

public func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {

    let fileurl: URL = url as URL
    let filename = url.lastPathComponent
    let fileextension = url.pathExtension
    print("URL: \(fileurl)", "NAME: \(filename)", "EXTENSION: \(fileextension)")

    myFiles.append(filename) //bad way of store
    util_TableView.reloadData()

}

Код загрузки:

func uploadImage(with data: Data) {
        let expression = AWSS3TransferUtilityUploadExpression()
        expression.progressBlock = progressBlock

        transferUtility.uploadData(
            data,
            bucket: S3BucketName,
            key: S3UploadKeyName,
            contentType: "image/png",
            expression: expression,
            completionHandler: completionHandler).continueWith { (task) -> AnyObject! in
                if let error = task.error {
                    print("Error: \(error.localizedDescription)")

                    DispatchQueue.main.async {
                        self.statusLabel.text = "Failed"
                    }
                }

                if let _ = task.result {

                    DispatchQueue.main.async {
                        self.statusLabel.text = "Generating Upload File"
                        print("Upload Starting!")
                    }

                    // Do something with uploadTask.
                }

                return nil;
        }
    }
0
задан user28 13 August 2018 в 15:43
поделиться

1 ответ

Используйте API AWSS3TransferUtility.uploadFile. Он может использовать файл localuri в качестве параметра, так что вам не нужно передавать файл данных в функцию, чтобы загрузить файл.

Вот ответ на этот вопрос. Swift загружает несколько файлов параллельно в AWS S3 и отображает статус просмотра в ячейке tableview

0
ответ дан Chunqiang Sun 15 August 2018 в 17:00
поделиться

Другие вопросы по тегам:

Похожие вопросы: