iOS

SwiftでS3への画像アップロード

投稿日:2017年3月25日 更新日:

はじめに

こんにちは、初iOSの記事になります!

今回はSwiftでAWSのS3へ画像をアップロードする方法について、ブログを書きたいと思います。

AWS Cognitoでの認証が本来は望ましいのですが、今回は簡単にIAMユーザを作成し、ACCESS KEYとSECRET ACCESS KEYを利用した方法で紹介したいと思います。

アプリをリリースする場合は、AWS Cognitoを利用するか、IAMユーザの場合はアクセス権限を十分に絞ってください。

AWS上での事前準備

AWS上での準備については、省略しますが下記の2つを準備してください。

IAMユーザについては、作成したS3のバケットへアップロード(PutObject)できる権限を付与しておく必要があります。

  • S3にバケットを作成
  • IAMユーザの作成(上記のバケットへの「s3:PutObject」権限あり)

CocoaPodsでAWS SDKをインストールをする

Podfileに下記を記載して、インストールします。

認証の設定をする

冒頭で記載したとおり、今回はIAMユーザでの認証を行います。

accessKeyとsecretKeyにはAWSで作成したIAMユーザのものを設定してください。

下記の処理は、S3で画像などをアップロードする前に1度だけ実行するようにします。

UIImageを保存して、URLを取得する

S3へ投稿するファイルは、一時的に端末内に保存して、そのURLをS3のSDKに指定する必要があります。

下記のメソッドで、S3へのアップロードする画像が保存されているURLを取得できます。

S3へアップロードする

下記のメソッドでS3へアップロードができます。

下記のメソッドを呼ぶ前には、上記で記載している認証の設定を事前に実行する必要があります。

また、「uploadRequest?.bucket」にはAWS上で作成したバケット名を指定し、「uploadRequest?.key」にはS3上に保存したいファイル名を指定します。

なお、ファイル名はtest/hello.jpgとするとAWSコンソールなどから見た際にtestフォルダ内にhello.jpgファイルが保存されているように見えるので、ファイルをまとめて管理したい場合には、「test/」などのプレフィックスをつけるとよいでしょう。

さいごに

直近のプロジェクトで、S3へ画像をアップロードする必要があったので調べてみました。

ぜひ、ご参考にしていただければと思います。

page_footer_300rect




page_footer_300rect




-iOS
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

swift

[Swift]動画撮影にて好きなサイズでプレビュー表示する

1 はじめに1.1 前提条件2 実装3 さいごに はじめに こんにちは、nukkyです。 今回はメインのビューの右上とかに小窓の様なプレビューにカメラの映像を出して、動画撮影するという機能を作成したの ...

UnityのiOSネイティブをSwiftで書く

1 はじめに2 UnityのiOSネイティブとは?3 今回作るもの4 必要な構成5 unity-swiftの導入6 必要な機能の実装6.1 Swiftクラスの作成6.2 Objective-C++でU ...

swift

【Swift】switch文でタプルを使う

1 はじめに2 タプルとは3 タプルを使うswitch文について4 テストコード5 さいごに はじめに こんにちはsuzukiです。本日で投稿が2回目となります。 今後ともよろしくお願い致します。 最 ...

swift

Swift3でSCLAlertViewを使ってみた

1 はじめに2 準備3 実装 はじめに 今回はSwiftでフラットなデザインの アニメーション付きアラートビューが扱える SCLAlertViewを試してみたいと思います。 準備 おなじみCocoaP ...

swift

[Swift]UIViewからUIImageを作成しローカルに保存

1 はじめに1.1 前提条件2 実装2.1 UIViewからUIImageへ2.2 UIImageをローカルに保存2.3 おまけ:画像のリサイズ3 さいごに4 おすすめ書籍 はじめに こんにちは、nu ...

フォロー

follow us in feedly

page_side_300rect

2017年3月
« 2月 4月 »
 1234
567891011
12131415161718
19202122232425
262728293031 

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。