Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
@uppy/companion-client
Advanced tools
Client library for communication with Companion. Intended for use in Uppy plugins.
@uppy/companion-client is a client-side library for Uppy, a modular file uploader for web browsers. It allows you to interact with Uppy Companion, a server-side component that handles file uploads from various sources such as local disk, remote URLs, and cloud services like Google Drive, Dropbox, and Instagram.
Upload Files
This feature allows you to upload files to a specified endpoint using the Companion server. The code sample demonstrates how to upload a file named 'example.txt' to a Companion server.
const { uploadFile } = require('@uppy/companion-client');
const file = new File(['content'], 'example.txt', { type: 'text/plain' });
uploadFile(file, {
endpoint: 'https://your-companion-server.com/upload',
fieldName: 'file'
}).then(response => {
console.log('File uploaded successfully:', response);
}).catch(error => {
console.error('Error uploading file:', error);
});
Generate Pre-signed URLs
This feature allows you to generate pre-signed URLs for uploading files directly to cloud storage services like Amazon S3. The code sample demonstrates how to generate a pre-signed URL for a file named 'example.txt'.
const { getPreSignedUrl } = require('@uppy/companion-client');
getPreSignedUrl('https://your-companion-server.com/s3', {
filename: 'example.txt',
contentType: 'text/plain'
}).then(response => {
console.log('Pre-signed URL:', response.url);
}).catch(error => {
console.error('Error generating pre-signed URL:', error);
});
List Files
This feature allows you to list files from a specified source, such as Google Drive or Dropbox, using the Companion server. The code sample demonstrates how to list files from Google Drive.
const { list } = require('@uppy/companion-client');
list('https://your-companion-server.com/drive').then(response => {
console.log('Files:', response.items);
}).catch(error => {
console.error('Error listing files:', error);
});
tus-js-client is a client-side library for the tus resumable upload protocol. It allows you to upload large files in chunks, resume interrupted uploads, and handle network issues. Unlike @uppy/companion-client, which is designed to work with Uppy and its Companion server, tus-js-client focuses on resumable uploads and can be used independently.
Fine Uploader is a JavaScript library for file uploads that supports multiple file selection, drag-and-drop, and resumable uploads. It provides a comprehensive set of features for file uploading, including support for various cloud storage services. Compared to @uppy/companion-client, Fine Uploader offers a more extensive set of features but may require more configuration.
Dropzone is a JavaScript library that provides drag-and-drop file uploads with image previews. It is easy to set up and use, making it a popular choice for simple file upload needs. While Dropzone offers basic file upload functionality, it lacks the advanced features and integrations provided by @uppy/companion-client.
Client library for communication with Companion. Intended for use in Uppy plugins.
Uppy is being developed by the folks at Transloadit, a versatile file encoding service.
import Uppy from '@uppy/core'
import { Provider, RequestClient, Socket } from '@uppy/companion-client'
const uppy = new Uppy()
const client = new RequestClient(uppy, {
companionUrl: 'https://uppy.mywebsite.com/',
})
client.get('/drive/list').then(() => {})
const provider = new Provider(uppy, {
companionUrl: 'https://uppy.mywebsite.com/',
provider: providerPluginInstance,
})
provider.checkAuth().then(() => {})
const socket = new Socket({ target: 'wss://uppy.mywebsite.com/' })
socket.on('progress', () => {})
Unless you are writing a custom provider plugin, you do not need to install this.
$ npm install @uppy/companion-client
Documentation for this plugin can be found on the Uppy website.
4.3.0
Released: 2024-08-29
| Package | Version | Package | Version | | ---------------------- | ------- | ---------------------- | ------- | | @uppy/aws-s3 | 4.1.0 | @uppy/informer | 4.1.0 | | @uppy/box | 3.1.0 | @uppy/instagram | 4.1.0 | | @uppy/companion | 5.1.0 | @uppy/locales | 4.1.0 | | @uppy/companion-client | 4.1.0 | @uppy/onedrive | 4.1.0 | | @uppy/compressor | 2.1.0 | @uppy/remote-sources | 2.2.0 | | @uppy/core | 4.2.0 | @uppy/screen-capture | 4.1.0 | | @uppy/dashboard | 4.1.0 | @uppy/tus | 4.1.0 | | @uppy/dropbox | 4.1.0 | @uppy/unsplash | 4.1.0 | | @uppy/facebook | 4.1.0 | @uppy/url | 4.1.0 | | @uppy/google-drive | 4.1.0 | @uppy/xhr-upload | 4.1.0 | | @uppy/google-photos | 0.3.0 | @uppy/zoom | 3.1.0 | | @uppy/image-editor | 3.1.0 | uppy | 4.3.0 |
UIPlugin.render
for non-Preact integration (Merlijn Vos / #5437)JSON.stringify
(Antoine du Hamel / #5422)FAQs
Client library for communication with Companion. Intended for use in Uppy plugins.
The npm package @uppy/companion-client receives a total of 75,282 weekly downloads. As such, @uppy/companion-client popularity was classified as popular.
We found that @uppy/companion-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
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.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.