
I have a function that is triggered when an image is uploaded, and it removes the background from the image. The function works well locally, but when I deploy it to Appwrite, it remains stuck in a “processing” state. As a result, I’m unable to delete the execution since it’s still marked as running.
Additional context: The function is using the python-ml runtime, and I’m using the rembg library. I’ve also tried using the rembg[cpu] version, but the issue persists. Any guidance or assistance would be greatly appreciated.
The snippet is below
from appwrite.client import Client
from appwrite.services.storage import Storage
from appwrite.input_file import InputFile
from rembg import remove
from PIL import Image
ENDPOINT = 'http://host.docker.internal/v1'
# This Appwrite function will be executed every time your function is triggered
def main(context):
# You can use the Appwrite SDK to interact with other services
# For this example, we're using the Users service
client = (
Client()
.set_endpoint(ENDPOINT)
.set_project(os.environ["APPWRITE_FUNCTION_PROJECT_ID"])
.set_key(context.req.headers["x-appwrite-key"])
)
storage = Storage(client)
file_payload = context.req.body
actual_file = storage.get_file_download(
bucket_id=file_payload["bucketId"],
file_id=file_payload["$id"],
)
context.log(f"File payload: {file_payload}")
# # Open the image
context.log(f"Actual file: {actual_file}")
image = Image.open(actual_file)
# # Remove background
output = remove(image)
storage.delete_file(
bucket_id=file_payload["bucketId"],
file_id=file_payload["$id"],
)
storage.create_file(
bucket_id=file_payload["bucketId"],
file_id=file_payload["$id"],
file=InputFile.from_bytes(output),
permissions=file_payload["$permissions"],
)
context.log("BG Removed")
return context.res.empty()
Recommended threads
- Query.equal error
Hi guys. I'm using Appwrite Cloud, and I'm using version 21 of node-appwrite to benefit from transactions. The problem is I seem to be getting an error when I u...
- Invalid `success` param
Hi again, I've tried to set up the login process. However, I always get the message: `Invalid success param: URL host must be one of: localhost, xxx` I've alr...
- Is it possible to have multiple smtp on ...
I already have one in one project but is it possible to use different one in another?
