# How to avoid text being in base64 with presign off

**URL:** <https://community.labelstud.io/t/how-to-avoid-text-being-in-base64-with-presign-off/506>\
**Category:** Label Studio Support\
**Tags:** annotations\
**Created:** [February 14, 2025, 3:42pm UTC](https://community.labelstud.io/t/how-to-avoid-text-being-in-base64-with-presign-off/506 "2025-02-14T15:42:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Reda\_Drissi](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.labelstud.io/reda_drissi/32/302_2.png) [@Reda\_Drissi](https://community.labelstud.io/u/Reda_Drissi)\
**Post date:** [February 14, 2025, 3:42pm UTC](https://community.labelstud.io/t/how-to-avoid-text-being-in-base64-with-presign-off/506/1 "2025-02-14T15:42:26Z")

</div>

Hello

I’m running label studio 1.15.0 on Kubernetes alongside MinIO for S3 storage

Because I’m inside a Kubernetes Cluster I cannot use presigned URLs.

I’m using the default templates for anything text related.

If the data is an s3 url the browser retrieves the result then encodes it into base64 and the text to label is shown as:

```auto
data:text/plain;base64,dGhpcyBpcyBhIHNhbXBsZSB0ZXh0LCBkb24ndCBwZWVrCg==

```

Manually decoding that base64 code shows that the data was retrieved properly but encoded into base 64.

When I do the same for images it works and the image is displayed properly. Only text has this issue.

Is there a way to display the text as-is ?

The reason why I cannot use presigned URLS is that there isn’t an option for S3 endpoint that works well. The ingress endpoint to S3 is not accessible by label studio container… And the Kubernetes internal S3 endpoint is not accessible by the browser.

---

<div class="post-metadata">

**Author:** ![makseq](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.labelstud.io/makseq/32/26_2.png) [@makseq](https://community.labelstud.io/u/makseq)\
**Post date:** [February 18, 2025, 6:45pm UTC](https://community.labelstud.io/t/how-to-avoid-text-being-in-base64-with-presign-off/506/2 "2025-02-18T18:45:52Z")

</div>

It seems it is not possible. When you turn off presigned URLs, LS always tries to read a file and pass it as a blob encoded with base64.

As a workaround, you can store your texts as JSONs (one task - one JSON) and disable the toggle “Treat every bucket object as a source file (if unchecked, treat every bucket object as a JSON-formatted task. Optional)”.

Why do you not use presigned URLs?

---

<div class="post-metadata">

**Author:** ![Reda\_Drissi](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.labelstud.io/reda_drissi/32/302_2.png) [@Reda\_Drissi](https://community.labelstud.io/u/Reda_Drissi)\
**Post date:** [February 19, 2025, 8:19am UTC](https://community.labelstud.io/t/how-to-avoid-text-being-in-base64-with-presign-off/506/3 "2025-02-19T08:19:57Z")

</div>

The workaround unfortunately isn’t working, it only loads my json text as a base64 encoded blob.

The reason why I cannot use presigned URLS is that there isn’t an option for S3 endpoint that works well. The ingress endpoint to S3 is not accessible by label studio container… And the Kubernetes internal S3 endpoint is not accessible by the browser.

I frankly would’ve loved to use it.
