Aws-cli: Lewati byte gambar ke Rekognition tanpa S3 tidak berfungsi

Dibuat pada 30 Okt 2017  ·  3Komentar  ·  Sumber: aws/aws-cli

Menurut dokumentasi , seseorang dapat meneruskan byte gambar ke operasi Rekognition API dengan menggunakan properti Bytes dalam opsi --image :

aws rekognition detect-labels --image "Bytes=blob"

Saya mencoba kombinasi yang tak terhitung jumlahnya, tetapi tidak berhasil. Saya juga mengerti, bahwa gambar harus dikodekan base64. Namun, apa pun yang saya coba, saya berakhir dengan pesan kesalahan berikut.

An error occurred (InvalidImageFormatException) when calling the DetectLabels
operation: Invalid image encoding

Tampaknya aws-cli mengambil input "gumpalan" yang Anda berikan, dan base64-mengkodekannya lagi. Masalahnya adalah, itu sebenarnya tidak memperlakukan input sebagai gumpalan. Itu memperlakukannya sebagai string dan mencoba menafsirkannya sebagai utf8, jadi Anda tidak dapat benar-benar melewatkan gumpalan kecuali secara kebetulan Anda memiliki gumpalan yang kebetulan terdiri dari karakter utf8 yang sepenuhnya valid. Bahkan jika Anda meneruskan JSON, itu masih mengkodekan nilai Bytes ke base64.

Akibatnya, satu-satunya pilihan adalah mengunggah gambar ke S3 terlebih dahulu, lalu merujuknya dengan menggunakan properti S3Object . Namun ini tidak selalu diinginkan dan kurangnya dukungan "Bytes=blob" tampaknya kontras dengan dokumentasi dan teks bantuan bawaan.

Sistem/perangkat lunak yang digunakan:
aws-cli/1.11.175 Python/2.7.13 Linux/4.8.0-2-amd64 botocore/1.7.33

enhancement

Komentar yang paling membantu

@dstufft ada berita tentang ini?

Semua 3 komentar

Ini saat ini tidak memungkinkan karena cara CLI mengekspos input ini. Saya akan mengajukan ini sebagai peningkatan pada API ini untuk memungkinkan meneruskan direktori byte ke perintah. Sementara itu, Anda harus menggunakan S3 untuk bekerja.

@dstufft ada berita tentang ini?

lagi ada berita tentang ini? Saya tidak dapat menemukan contoh mengunggah gambar sebagai byte.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat