diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index a288973049..635804cf49 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -29,8 +29,6 @@ jobs: matrix: os: - ubuntu - - windows - - macos runs-on: ${{ matrix.os }}-latest steps: - name: Check out code diff --git a/README.md b/README.md index 8eb361d442..f977167dba 100644 --- a/README.md +++ b/README.md @@ -20,13 +20,15 @@ The Huly Stream high-performance HTTP-based transcoding service. Huly-stream is - `webm` ### Output Options -- **TUS Upload**: Resumable file uploads via TUS protocol. -- **s3 Upload**: Direct upload to Amazon S3. -- **datalake Upload**: Integration for data lake storage systems. - **Supported Output Formats**: - `aac` - `hls` +### Upload options +- **TUS Upload**: Resumable file uploads via TUS protocol. +- **s3 Upload**: Direct upload to S3 storage. +- **datalake Upload**: Upload to datalake storage. + ### Key Functionalities - **Live transcoing with minimal upload time**: Transcoding results are going to be avaible after stream completion. - **Transcoding Cancelation**: Cancel or pause ongoing transcoding in real-time. @@ -74,13 +76,13 @@ STREAM_REMOVE_CONTENT_ON_UPLOAD True or False true STREAM_UPLOAD_RAW_CONTENT True or False false uploads content in raw quality to the endpoint if true ``` -### Metadata: +### Metadata -**resolutions** if passed, set the resolution for the output, for example, 'resolutions: 1920:1080, 1280:720.' +**resolutions:** if passed, set the resolution for the output, for example, 'resolutions: 1920:1080, 1280:720.' -**token** must be provided to be authorized in the Huly's datalake service. +**token:** must be provided to be authorized in the Huly's datalake service. -**workspace** required for uploading content. +**workspace:** required for uploading content to the datalake storage. diff --git a/internal/pkg/uploader/datalake.go b/internal/pkg/uploader/datalake.go index 6869cc9f99..43ba535efd 100644 --- a/internal/pkg/uploader/datalake.go +++ b/internal/pkg/uploader/datalake.go @@ -18,6 +18,7 @@ import ( "context" "io" "mime/multipart" + "net/url" "os" "path/filepath" @@ -54,7 +55,7 @@ func (d *DatalakeStorage) UploadFile(ctx context.Context, fileName string) error _ = file.Close() }() - var _, objectKey = filepath.Split(fileName) + var objectKey = getObjectKey(fileName) var logger = log.FromContext(ctx).With(zap.String("datalake upload", d.workspace), zap.String("fileName", fileName)) logger.Debug("start uploading") @@ -101,7 +102,7 @@ func (d *DatalakeStorage) DeleteFile(ctx context.Context, fileName string) error var logger = log.FromContext(ctx).With(zap.String("datalake delete", d.workspace), zap.String("fileName", fileName)) logger.Debug("start deleting") - var _, objectKey = filepath.Split(fileName) + var objectKey = getObjectKey(fileName) req := fasthttp.AcquireRequest() defer fasthttp.ReleaseRequest(req) @@ -122,3 +123,8 @@ func (d *DatalakeStorage) DeleteFile(ctx context.Context, fileName string) error return nil } + +func getObjectKey(s string) string { + var _, objectKey = filepath.Split(s) + return url.QueryEscape(objectKey) +}