Я должен загрузить изображение в хранилище Amazon AWS S3, но все время отображается сообщение об ошибке (сетевое соединение было потеряно). - PullRequest
0 голосов
/ 17 декабря 2018

Я не смог загрузить изображение в хранилище amazon s3 с помощью ключа доступа и секретного ключа, если кто-то сделал такой пример, используя ключ доступа и секретный ключ, пожалуйста, поделитесь, я также пишу этот код, пожалуйста, просмотрите этотЕсли я сделал какую-либо ошибку, пожалуйста, укажите.Вот код:

import UIKit
import AWSS3
import AWSCore

class ViewController: UIViewController {

let accessKey = "myaccesskey here"
let secretKey = "mysecretkey here"

let S3BucketName = "bucketname"
let remoteName = "test.jpg"

@IBOutlet var activtyIndicator: UIActivityIndicatorView!
override func viewDidLoad() {
    super.viewDidLoad()

    let credentialsProvider = AWSStaticCredentialsProvider(accessKey: accessKey, secretKey: secretKey)
    let configuration = AWSServiceConfiguration(region:AWSRegionType.USEast1, credentialsProvider:credentialsProvider)

    AWSServiceManager.default().defaultServiceConfiguration = configuration

}

@IBAction func uploadAction(_ sender: UIBarButtonItem) {

    print("Tapped")
    activtyIndicator.startAnimating()
    let fileURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(remoteName)
    let image = UIImage(named: "test")
    let data = image!.jpegData(compressionQuality: 0.9)
    do {
        try data?.write(to: fileURL)
    }
    catch {}

    let uploadRequest = AWSS3TransferManagerUploadRequest()!
    uploadRequest.body = fileURL
    uploadRequest.key = remoteName
    uploadRequest.bucket = S3BucketName
    uploadRequest.contentType = "image/jpeg"
    uploadRequest.acl = .publicRead

    let transferManager = AWSS3TransferManager.default()

    transferManager.upload(uploadRequest).continueWith { [weak self] (task) -> Any? in
        DispatchQueue.main.async {
            self?.activtyIndicator.stopAnimating()
        }

        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!)
            if let absoluteString = publicURL?.absoluteString {
                print("Uploaded to:\(absoluteString)")
            }
        }

        return nil
    }
  }
}

Ошибка ниже:

"Загрузка не удалась с ошибкой: (сетевое соединение было потеряно.)"

...