中安佑一(69)23はじめにモバイルアプリサービス部の中安です。S3に限定的にアクセスしてファイルをアップロードすることができます。S3にオブジェクトをアップロードすることが可能になります。URLに対して画像をアップロードすることに奮闘したので、その経緯と解決法をアウトプットしてみたいと思います。ネットによくあるサンプルAlamofireを利用して画像をアップロードするサンプルとしては、以下のようなソースコードがネット上ではよく引っかかります。エラーになってしまいます。してあげる必要があるようです。https://hogehoge.amazonaws.com/...&content-type=image/jpeg...このようなURLの場合は、JPEG画像のみしか受け付けてくれません。勝手気ままに色々なファイルがアップロードされるのも困るでしょうから、このように制限がかかるのでしょう。リクエストボディに含むデータもJPEGデータにしなくてはなりません。改修してみる上記のような問題があるため、回避策としてソースコードを以下のように変えてみました。)}前述の問題への対応として、ハイライトしている2箇所を変更してみました。S3の中身を見てみると画像ファイルとして壊れた状態になってしまいました。改修は何故うまくいかなかったのかなぜ画像ファイルが壊れた状態になってしまったのか。ここはちょっとハマりました。ソースコードをよく見れば答えは自ずと出るのでした。いう引数は「エンコーディングが完了した」ときのコールバックです。前提として作られているようです。区切っていっていることが分かりました。用の文字列なども含んでのエンコーディング結果ということになります。余計なものを含んでいるゆえに、アップロードされた画像はファイルとしては不正なものになっていました。向かないことが分かりました。いうクラスのアップロード処理に行き当たります。開発者が簡単に使えるようにその中身をマルチパートフォームデータ用にラップして提供されているということですね。いうことで、Alamofire.SessionManagerが行っていることから、マルチパートフォームデータ用の処理を取り除く形で実装してみることにしました。実装されていますが、ネットワーキングは非同期処理を行うため、メインスレッド外で処理を行います。先にそのあたりを作っておきます。呼び出すことでネットワーキング処理が走り出します。このオブジェクトが生成できればこっちのものというわけです。HTTPヘッダを引数にとって生成してくれるイニシャライザが用意してくれています。ありがたいのでこちらを使わせていただこうと思います。囲ってやる必要があります。UploadRequestこんなにもシンプルなものが存在しておりました。Mr.Childrenこのメソッドを使ってアップロードリクエストを取得してやります。使ってアップロードを実行してやります。下のソースのハイライトした部分になります。JPEG画像が壊れずにアップロードされました。画像アップロード」で検索すると、最初に書いたようにマルチパートフォームデータ前提の方法が引っかかります。自分もそれらを参考にしてみたのですが、ちょっとその方法に引っ張られてしまいました。後から冷静に考えれば「そりゃうまくいかないよね」って思うところなのですが、ハマる時ってそういうものですね。この記事がどなたかの参考になれば幸いです。thing...おまけです。ターミナルで叩いてみるとS3にアクセスされます。できる方法だったので、ご紹介しておきます。694,164iOS開発歴がそこそこ長くなってきました。Swiftが好きなのでSwiftの小ネタ中心にブログを執筆しています。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。濱田孝治253re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。PolicyのConditionにaws:CalledViaというキーが追加されました。いったキーなのかご説明します。夏目祐樹409こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介256SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。濱田孝治253re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。