ドキュメントによると、 --image
オプションのBytes
プロパティを使用して、画像バイトをRekognitionAPIオペレーションに渡すことができます。
aws rekognition detect-labels --image "Bytes=blob"
数え切れないほどの組み合わせを試しましたが、役に立ちませんでした。 また、画像はbase64でエンコードする必要があることも理解しています。 ただし、何をしようとしても、次のエラーメッセージが表示されます。
An error occurred (InvalidImageFormatException) when calling the DetectLabels
operation: Invalid image encoding
aws-cliは、指定された入力「blob」を受け取り、base64-で再度エンコードするようです。 問題は、実際には入力をブロブとして扱わないことです。 文字列として扱い、utf8として解釈しようとするため、偶然に完全に有効なutf8文字で構成されているblobを所有している場合を除いて、実際にblobを渡すことはできません。 JSONを渡しても、Bytes値はbase64にエンコードされます。
結果として、唯一のオプションは、最初に画像をS3にアップロードしてから、 S3Object
プロパティを使用して画像を参照することです。 ただし、これは常に望ましいとは限らず、 "Bytes=blob"
のサポートがないことは、ドキュメントや組み込みのヘルプテキストとは対照的であるように思われます。
使用したシステム/ソフトウェア:
aws-cli / 1.11.175 Python / 2.7.13 Linux / 4.8.0-2-amd64 botocore / 1.7.33
CLIがこれらの入力を公開する方法のため、これは現在不可能です。 このAPIの拡張機能としてこれをファイルし、bytesディレクトリをコマンドに渡すことができるようにします。 それまでの間、S3の回避策を使用する必要があります。
@dstufftこれに関するニュースはありますか?
もう一度これに関するニュースはありますか? 画像をバイト単位でアップロードする例が見つかりません。
最も参考になるコメント
@dstufftこれに関するニュースはありますか?