New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

to-be-deleted-video-uploader-sdk

Package Overview
Dependencies
Maintainers
1
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

to-be-deleted-video-uploader-sdk

SDK для загрузки видео ===============

  • 4.2.6
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

SDK для загрузки видео

Установка:

npm i rupor-uploader-js-sdk

Важно: чтобы этот SDK работал, необходимо чтобы на сервере был Вот такой API.

Этот SDK позволяет выполнять загрузку видео по кускам (chunks). Размер одного куска настраивается, по умолчанию стоит значение в 1MB.

Работает это так: сначала идет POST запрос с meta информацией о видео, в том числе размер видео, например: POST на your-api.com/v1/ с payload

{
    "metadata": {
        "originalFilename": "4.mp4",
        "lastModified": 1640256801618,
        "fingerprint": "fd8e7ca5165cf69976c58b82fd18ea868223ede2"
    },
    "mimeType": "video/mp4",
    "size": 4291343,
    "uid": "C"
}

. Далее идут PUT запросы с offset, например: your-api.com/v1/some-unique-task-id/1048576, где offset равен 1048576

Он так же поддерживает функцию паузы, и многопоточную загрузку видео. Так же можно загружать несколько видео файлов за раз.

Примеры использования:

React

Создаем хук useUploadManager:

import { UploadTasksManager } from 'to-be-deleted-video-uploader-sdk';
...
...
export const useUploadManager = () => {
    const managerRef = useRef<UploadTasksManager>();

    const handleUploadDone = () => console.log('DONE!');
    const handleUploadProgress = (n:number) => console.log(n);

    useEffect(() => {
        if (managerRef.current) {
            return;
        }

        const manager = new UploadTasksManager(UPLOADER_SERVER_URL, 'SOME_UUID', 4);
        managerRef.current = manager;
        managerRef.current.on('upload-progress', handleUploadProgress);
        managerRef.current.on('all-done', handleUploadDone);

        const ref = managerRef;

        // eslint-disable-next-line consistent-return
        return () => {
            ref.current!.removeAllListeners();
        };
    }, []);

    return {
        managerRef,
    };
};

В компоненте:

import type { FC } from 'react';

import { useUploadManager } from './hooks/useUploadManager';

export const AddVideo: FC = () => {
    const { managerRef } = useUploadManager();

    const handleSelectFiles = async (video: File) => {
        // пользователь выбрал видео
        try {
            const task = await managerRef.current.upload(video);
            //далее делаем все что нужно с task
            ...
            ... 

            await task.pause()
            ...
            await task.resume()
        } catch (error) {
            console.error(error);
        }
    };

    return (
        <CustomFileInput onSelectFiles={handleSelectFiles}/>
    );
};

API

UploadTasksManager
Constructor argTypeDescription
urlstringСсылка на uploader сервис, Важно: чтобы этот SDK работал, необходимо чтобы на сервере был Вот такой API.
uidstringуникальный id
maxConcurrentnumberмаксимальное кол-во PUT запросов в параллель
silent?booleanПоказать/скрыть console.logs, по умолчанию true

| Method | Args | Return Type | Description | | ----------- | ----------- | -----| | get | Task | | | Paragraph | Text | |

Пример использования:

const manager = new UploadTasksManager('https://my-uploader.ru/api/v1/', 'ASD', 4);
Task

FAQs

Package last updated on 30 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc