2016-04-08 10 views
2

AWS SDKを使用できないさまざまな理由から、APIの呼び出しを休止する必要があります。私は認証を理解しましたが、どのリソースを呼び出すべきかを理解する必要があります。ほとんどのAWSドキュメントは、SDKを指しています。 AWSキーマネージメント(KMS)のような休憩コールをどのように把握できますか?SDKなしのAWS Rest API

答えて

0

ここAWS KMSアクションのマニュアルを参照してください:すべてのサービスのAWSエンドポイントの
http://docs.aws.amazon.com/kms/latest/APIReference/API_Operations.html

一覧:

をたとえば、米国東部のKMSはkms.us-東1.amazonawsですAWSエンドポイントへのHTTPS要求の.COM

例として、どのように要求に署名するには:
http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html

だから、KMS ListAliasesのベースURLは、(署名前)に次のようになります。
https://kms.us-east-1.amazonaws.com/?Action=ListAliases&Version=2010-05-08

0

これは、iOS用のSWIFT 4で安らかなコマンドを介しAWSのAmazon WebサービスにPUTオブジェクトを行うための一例です。私はインターネット上のどこでもこれを見つけることができませんでした。私は自分自身でそれを一緒にcobbleしなければならなかった。私のバケツは現在パブリックの読み書きに設定されています。私はユーザー名/パスワード(アクセスキーIDとシークレットアクセスキー)をこれに追加するにはパラメータを使用すると思う。このrestRequest関数には、追加可能な辞書パラメータがあります。しかし、Postmanを介して同じ書き込みを試すことから、私はアマゾンのWebサービスが、実際にはそれが "Authorization"という名前の結合ヘッダとして期待していると思います。私はその仕組みがどういうものなのかよく分かっていませんが、PostmanはログインタイプとしてAWSを持っていますので、そこで実験を行ってください。私はrestoverRequestをスタックオーバーフローのどこかの安らかな例から得ることができます。

func restRequest(url:String, method: String, sBody: String , 
       params: [String: String], completion: @escaping ([AnyObject])->()){ 
    if let nsURL = NSURL(string:url) { 
     let request = NSMutableURLRequest(url: nsURL as URL) 
     if method == "PUT" { 
      request.httpMethod = "PUT" 
      for thisOne in params { 
       request.setValue(thisOne.value, forHTTPHeaderField: thisOne.key) 
      } 

      request.httpBody = "some text in the file we are putting" 



     } 
     // Add other verbs here 

     let task = URLSession.shared.dataTask(with: request as URLRequest) { 
      (data, response, error) in 
      do { 

       // what happens if error is not nil? 
       // That means something went wrong. 

       // Make sure there really is some data 
       if let data = data { 
        let response = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) 
        completion(response as! [AnyObject]) 
       } 
       else { 
        // Data is nil. 
       } 
      } catch let error as NSError { 
       print("json error: \(error.localizedDescription)") 
      } 
     } 
     task.resume() 
    } 
    else{ 
     // Could not make url. Is the url bad? 
     // You could call the completion handler (callback) here with some value indicating an error 
    } 
} 

そして、このようにそれを呼び出す:

let urlString = "https://bucketname.s3.amazonaws.com/test.txt" 

     restRequest(url: urlString, method: "PUT", sBody: sData, params: [  "Date" : "20180125T214827Z" ]) { 
      (result) in 

      // Handle result here. 
      print("restRequest result : \(result)") 
     } 
関連する問題