Загрузить видео на Minio, используя AWS [Swift] - PullRequest
0 голосов
/ 23 июня 2019

Я хотел записать короткое видео и загрузить прямо на сервер Minio. Я использую aws для загрузки, я конвертирую .mov в .mp4, прежде чем загружать его.

let credentialsProvider = AWSStaticCredentialsProvider(accessKey: self.accessKey, secretKey: self.secretKey)
                let configuration = AWSServiceConfiguration(region: .Unknown, endpoint: AWSEndpoint(region: .Unknown, service: .S3, url: URL(string:"http://x.x.xxx.xxx:x000/minio")),credentialsProvider: credentialsProvider)
                AWSServiceManager.default().defaultServiceConfiguration = configuration

                let url = result
                let remoteName = "abc.mp4"
                let S3BucketName = "abc"
                let uploadRequest = AWSS3TransferManagerUploadRequest()!
                uploadRequest.body = url!
                uploadRequest.key = remoteName
                uploadRequest.bucket = S3BucketName
                uploadRequest.contentType = "video/mp4"
                uploadRequest.acl = .publicRead

                //                    let fileURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(remoteName)

                let transferManager = AWSS3TransferManager.default()

                transferManager.upload(uploadRequest).continueWith { (task: AWSTask<AnyObject>) -> Any? in

                    DispatchQueue.main.async {

                    }

                    print("uploadRequest:\(uploadRequest)")
                    print("task:\(task)")

                    if let error = task.error {
                        print("Upload failed with error: (\(error.localizedDescription))")
                    }

                    if task.result != nil {
                        let url = AWSS3.default().configuration.endpoint.url
                        let publicURL = url?.appendingPathComponent(uploadRequest.bucket!).appendingPathComponent(uploadRequest.key!)
                        print("Uploaded to:\(String(describing: publicURL!))")
                    }

                    return nil
                }

И вот сообщение об ошибке, которое я получаю от обратного вызова

uploadRequest: { ACL = 2; body = "file: ///private/var/mobile/Containers/Data/Application/10C3C67B-E40E-4479-968B-6611AA59753F/tmp/58298907433__45A90626-CD9A-48EF-8011-B282B63F27CF.mp4"; ведро = abc; cacheIdentifier = "C2665E02-A434-4E7B-A9B2-65E3CE40B4B9-680-000000750DB6B41F"; contentLength = 113776; contentType = "video / mp4"; currentUploadingPartNumber = 0; ключ = "abc.mp4"; objectLockLegalHoldStatus = 0; objectLockMode = 0; requestPayer = 0; serverSideEncryption = 0; состояние = 1; storageClass = 0; totalSuccessfullySentPartsDataLength = 0; } задача: Загрузка не удалась с ошибкой: (Операция не может быть завершена. (Com.amazonaws.AWSS3ErrorDomain ошибка 0.))

Я выполняю все шаги, которые могу найти в Интернете, но понятия не имею, в чем проблема, может кто-нибудь, пожалуйста, помогите мне.

...