Unable to open image from gcp bucket

Hello streamlit people,

I am using a streamlit app to visualize the data in publications documents. I have data stored in bigquery table and images stored in gcp storage bucket. The data in the table shows perfectly normal. However, displaying images in the app is a challenge. The app is running locally.

After following the code here, I was able modify code as below:

conn = st.connection("gcs", type=FilesConnection)
image_file = 'gs://test-bucket/images/sample1.jpeg'
image = conn.open(image_file, format="image/jpeg", cache="0s").read()
st.image(image, use_column_width=True)

The problem is the code above displays images without any issue. However when I looked into the FilesConnection code the input_format ‘image/jpeg’ is not supported but this code is returning results. Also, the conn.open should be returning an Iterator[TextIOWrapper | AbstractBufferedFile].

Could someone please help resolve this issue to display the gcp images correctly? Or if there is a possibility to extend the FilesConnection class to accept image format.

If the code displays the images without any issues, what is the issue you want to resolve?

It displays the images without any issues but not correctly?

The problem is the code displays images however when I compile the code and run type checker(pyright), it gives an error:

error: Cannot access member "read" for type "Iterator[TextIOWrapper | AbstractBufferedFile]"
    Member "read" is unknown (reportGeneralTypeIssues)

Also, I want to understand how it could display images when the FilesConnection class doesn’t support images/jpeg input format?

That looks like a FilesConnection issue. The return value of FilesConnection.open is declared as Iterator, which doesn’t have a read method.

What makes you think that?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.