awss3src doesn't work with url contains space
Describe your issue
I wanna transcode file from S3 with gstreamer pipeline using awss3src. But the name of this file contains space (' ') character.
Expected Behavior
Pipeline start transcoding without errors.
Observed Behavior
Errors in logs:
Setting pipeline to PAUSED ...
ERROR: from element /GstPipeline:pipeline0/GstAwsS3Src:awss3src0: Resource not found.
Additional debug info:
net/aws/src/s3src/imp.rs(183): gstaws::s3src::imp (): /GstPipeline:pipeline0/GstAwsS3Src:awss3src0:
Failed to get HEAD object: ServiceError(ServiceError { source: HeadObjectError { kind: NotFound(NotFound { message: None }), meta: Error { code: Some("NotFound"), message: None, request_id: None, extras: {} } }, raw: Response { inner: Response { status: 404, version: HTTP/1.1, headers: {...}, body: SdkBody { inner: Once(Some(b"")), retryable: true } }, properties: SharedPropertyBag(Mutex { data: PropertyBag, poisoned: false, .. }) } })
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstAwsS3Src:awss3src0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
../subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3561): gst_base_src_start (): /GstPipeline:pipeline0/GstAwsS3Src:awss3src0:
Failed to start
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...
Setup
- Operating System: Ubuntu 22.04.3 LTS
- Device: Computer
- gst-plugins-rs Version: revision=gstreamer-1.22.5
- GStreamer Version: 1.22.5
- Command line: bash
Steps to reproduce the bug
- open terminal
- type
GST_PLUGIN_PATH="target/x86_64-unknown-linux-gnu/debug:$GST_PLUGIN_PATH" gst-launch-1.0 awss3src uri="s3://region/host/path/to/file/file name with spaces.mp4" access-key="***" secret-access-key="***" ! rmdemux ! typefind ! decodebin ! queue ! filesink location=file.mp4
How reproducible is the bug?
Always, when I try to transcode file that contains space character in the name.
Solutions you have tried
Additional Information
I'll say right away that the file is not broken. I tried renaming it and transcoding it and everything worked fine. Also after my fix everything started working.