JSPM

  • Created
  • Published
  • Downloads 15
  • Score
    100M100P100Q85297F
  • License MIT

Package Exports

  • raysync-sdk

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (raysync-sdk) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Raysync SDK for JavaScript

Basic usage

  1. please see windows or linux server deployment manual, deploy your raysync server.
  2. go to raysync admin website,create a new account.
  3. install SDK using npm
npm install raysync-sdk --save
  1. After installed raysync client,you can connect client by use Client instance
import { Client, ClientResponse } from 'raysync-sdk'

const client = new Client({ server_ip: 'your raysync server ip' })
client.login({ username: 'Your raysync account', password: 'Your raysync password' })
// After login successful, you can use most of the functionalities of raysync client
// Some examples:
client.on(ClientResponse.LIST, (response) => {
  console.log(response)
})
client.list('/')
  1. If you don’t want to install and start the raysync client,you can connect raysync file server by use FileServer instance
import { FileServer, ServerResponse } from 'raysync-sdk'
const RAYSYNC_SERVER_IP = '127.0.0.1'
const server = new FileServer({ url: `ws://${RAYSYNC_SERVER_IP}:2480` })
server.login({ username: 'Your raysync account', password: 'Your raysync password' })
// After login successful, you can use most of the functionalities of raysync server
// Some examples:
server.on(ServerResponse.LIST, (response) => {
  console.log(response)
})
server.list('/')
server.download('/demo.txt')

Table of contents

Create A Client Instance

Client Instance options

options:

  • [clientSign] {String} default is Raysync, Client sign value, if you use a customized raysync client, please provide it
  • [language] {String} client language, default is en-US (optional: zh-CN,en-US)
  • [protocol_version] {String} currently raysync server version
  • [client_version] {String} currently client version
  • [server_ip] {String} your raysync server ip, default is the host of the browser url
  • [server_port] your raysync server port, default is 8090
  • [proxy_ip] {String} raysync server proxy ip ,default is null
  • [proxy_port] {Number} raysync server proxy port ,default is 32001
  • [server5_port] {Number} file transmission port,default is 2442
  • [server5_ssl_port] {Number} file transmission encryption port,default is 2443
  • [tcpEnable] {Number} default is 1,it means enable TCP transmission ,else enable UDP transmission (optional: 1,0)
  • [tcpDelay] {Number} default is 10,Raysync supports both UDP and TCP transmissions. When Raysync client and Raysync server latency is less than tcpDelay, Raysync client automatically selects TCP for transmission; when the latency is greater than tcpDelay, Raysync client automatically selects UDP for transmission.
  • [autoUpdateSwitch] {Boolean} default true, whether to automatically upgrade the raysync client

example:

  1. basic usage
import { Client, ClientResponse } from 'raysync-sdk'

const client = new Client({ server_ip: 'your raysync server ip' })
  1. use custom options
import { Client, ClientResponse } from 'raysync-sdk'

const client = new Client({
  clientSign: 'your customized client sign',
  server_ip: 'your raysync service ip',
  server_port: 8090,
  proxy_ip: 'your raysync service ip',
  proxy_port: 32001,
  server5_port: 2442,
  server5_ssl_port: 2443,
  tcpEnable: 1,
  tcpDelay: 10,
  autoUpdateSwitch: true,
  language: 'en-US',
})

Client Operations

.login([username,password,uk])

example:
  1. use raysync authentication service
client.login({ username: 'your raysync account', password: 'your raysync password' })
  1. use custom authentication service,detail see
client.login({ uk: 'your custom token' })

.list(path [, groudId])

Get file list from the raysync client parameters:

  • path {String} list path, default is '/'
  • [groudId] {Number} currently groud id, default is 0

Success will return list response info, including:

  • path {String} list path
  • list {Array} file list info:
    • [name] {String} file name
    • [size] {Number} file size
    • [time] {Number} file modified time
    • [file_type] {Number} file type (0:file,1:folder,2:virtual directory) example:
client.on(ClientResponse.LIST, (response) => {
  console.log(response)
})
client.list('/')

.download(files)

Use the raysync client to download files

parameters:

  • files {Array}
    • path: {String} download path
    • names: {Array} file name list

example:

client.download([{ path: '/', names: ['1.txt', '2.txt'] }])

.upload(path)

Use the raysync client to upload files

parameters:

  • path {String} upload path

example:

client.upload('/')

.mkdir(name [,path])

Create a new directory parameters:

  • name {String} directory name
  • [path] {String} directory path, default is '/'

Success will return mkdir response info, including:

  • result {Number} response code
  • message {Number} response message
  • success {Boolean} this operation is successful or not

example:

client.on(ClientResponse.MKDIR, (response) => {
  console.log(response)
})
client.mkdir('test', '/')

.rename(oldName,newName)

parameters:

  • oldName {String} old file name
  • newName {String} new file name

Success will return rename response info, including:

  • result {Number} response code
  • message {Number} response message
  • is_end {Boolean} this operation is completed or not
  • failed_count {Number} count of failed files
  • file_count {Number} count of files

example:

client.on(ClientResponse.RENAME, (response) => {
  console.log(response)
})
client.rename('/old.txt', '/new.txt')

.copy(from,to [,cover])

parameters:
  • from {Array} list of files that need to be copied
  • to {Array} list of target directory
  • [cover] {Boolean} default false, whether the file is overwritten when the target directory exists, the default is not overwritten and the value is false, or else, is the opposite.

Success will return copy response info, including:

  • result {Number} response code
  • message {Number} response message
  • is_end {Boolean} this operation is completed or not
  • failed_count {Number} count of failed files
  • file_count {Number} count of files

example:

client.on(ClientResponse.COPY, (response) => {
  console.log(response)
})
client.copy(['/old/1.txt', '/old/2.txt'], ['/new/1.txt', '/new/2.txt'], true)

.move(from,to [,cover])

parameters:

  • from {Array} list of files that need to be moved
  • to {Array} list of target directory
  • [cover] {Boolean} default false, whether the file is overwritten when the target directory exists, the default is not overwritten and the value is false, or else, is the opposite.

Success will return move response info, including:

  • result {Number} response code
  • message {Number} response message
  • is_end {Boolean} this operation is completed or not
  • failed_count {Number} count of failed files
  • file_count {Number} count of files

example:

client.on(ClientResponse.MOVE, (response) => {
  console.log(response)
})
client.move(['/old/1.txt', '/old/2.txt'], ['/new/1.txt', '/new/2.txt'], true)

.remove(files)

parameters:

  • files {Object}
    • path {string} file path
    • names {Array} list of file name

Success will return remove response info, including:

  • result {Number} response code
  • message {Number} response message
  • is_end {Boolean} this operation is completed or not
  • failed_count {Number} count of failed files
  • file_count {Number} count of files

example:

client.on(ClientResponse.REMOVE, (response) => {
  console.log(response)
})
client.remove({ path: '/', names: ['1.txt', '2.txt'] })

.getAttributes(path)

get folder attributes

parameters:

  • path {String} folder path

Success will return get attributes response info, including:

  • result {Number} response code
  • message {Number} response message
  • is_end {Boolean} this operation is completed or not
  • folder_count {Number} count of folders
  • file_count {Number} count of files
  • file_size {Number} file size
  • write_time {Number} last modified time

example:

client.on(ClientResponse.GET_ATTRIBUTES, (response) => {
  console.log(response)
})
client.getAttributes('/folder')

.upgrade(version)

when the server returns a higher version than that of the local raysync client,you can upgrade your raysync client by use this method

parameters:

  • version {String} version of client that need to be upgraded

example:

client.on(ClientResponse.UPDATE_CLIENT, (response) => {
  console.log(response)
  client.upgrade('6.0.0.8')
})

.setLanguage(language)

set current language of the raysync client

parameters:

  • language {String} client language, default is en-US (optional: zh-CN,en-US)

example:

client.setLanguage('en-US')

.setGroupId(groudId)

set current group id parameters:

  • groudId {Number} default is 0

example:

client.setGroupId(1)

.showSyncFolder(path [,forbid_sync_delete])

open the client sync-folder window

parameters:

  • path {String} target path of the sync-folder
  • [forbid_sync_delete] {Boolean} default false, hide the delete button of sync-folder or not

example:

client.showSyncFolder('/')

.close()

close client connection, off all event listener

Create A File Server Instance

options

  • url {String} raysync file server url,if you uploaded TLS certificate,please provide wss url

example:

  1. basic usage
import { FileServer } from 'raysync-sdk'
const RAYSYNC_SERVER_IP = '127.0.0.1'
const server = new FileServer({ url: `ws://${RAYSYNC_SERVER_IP}:2480` })
  1. if you uploaded an HTTPS certificate, please provide the https domain, and the port will be changed to 2481
const RAYSYNC_SERVER_IP = 'demo.raysync.cn'
const server = new FileServer({ url: `wss://${RAYSYNC_SERVER_IP}:2481` })

File Server Operations

.login(username,password)

example:

  1. use raysync authentication service
server.login({ username: 'your raysync account', password: 'your raysync password' })
  1. use custom authentication service,detail see
server.login({ uk: 'your custom token' })

.list(path)

Get file list from the raysync file server parameters:

  • path {String} list path, default is '/'

Success will return list response info, including:

  • result {Number} response code
  • success {Boolean} this operation is success or not
  • data {Array} file list info:
    • [name] {String} file name
    • [size] {Number} file size
    • [time] {Number} file modified time
    • [file_type] {Number} file type (0:file,1:folder,2:virtual directory)

example:

server.on(ServerResponse.LIST, (response) => {
  console.log(response)
})
server.list('/')

.download(path [,reportEvent, downloadId])

download file from the raysync server, only support download file

parameters:

  • path {String} file path
  • [reportEvent] {Boolean} report download event to raysync server ,default is true
  • [downloadId] {Number} download id

example:

server.on(ServerResponse.ON_DOWNLOAD_START, (response) => {
  console.log(response)
})
server.on(ServerResponse.ON_DOWNLOADING, (response) => {
  console.log(response)
})
server.on(ServerResponse.ON_DOWNLOAD_SUCCESS, (response) => {
  console.log(response)
})
server.download('/1.txt')

.upload(options)

upload file to the raysync server

parameters:

  • options {Object}
    • file {File} file object instance
    • [path] upload path, default is '/'
server.on(ServerResponse.ON_UPLOAD_START, (response) => {
  console.log(response)
})
server.on(ServerResponse.ON_UPLOADING, (response) => {
  console.log(response)
})
server.on(ServerResponse.ON_UPLOAD_SUCCESS, (response) => {
  console.log(response)
})
const file = new File(['1'], '1.txt', {
  type: 'text/plain',
})
server.upload({ file, path: '/test' })

.mkdir(name [,path])

Create a new directory parameters:

  • name {String} directory name
  • [path] {String} directory path, default is '/'

Success will return mkdir response info, including:

  • result {Number} response code
  • success {Boolean} this operation is successful or not

example:

server.on(ServerResponse.MKDIR, (response) => {
  console.log(response)
})
server.mkdir('test', '/')

.rename(path,newName)

parameters:
  • path {String} old name path
  • newName {String} new file name

Success will return rename response info, including:

  • result {Number} response code
  • message {Number} response message
  • data {Object}
    • isEnd {Boolean} this operation is completed or not
    • failedCount {Number} count of failed files
    • successCount {Number} count of success files

example:

server.on(ServerResponse.RENAME, (response) => {
  console.log(response)
})
server.rename('/test/old.txt', 'new.txt')

.getFileInfo(path)

parameters:

  • path {String} file path

Success will return file info, including:

  • result {Number} response code
  • message {Number} response message
  • data {Object}
    • fileSize {Number} File size
    • writeTime {Number} Last modified time

example:

server.on(ServerResponse.GET_SERVER_FILE_INFO, (response) => {
  console.log(response)
})
server.getFileInfo('/test/1.txt')

.copy(from,to)

parameters:
  • from {String} path that need to be copied
  • to {String} target path

Success will return copy response info, including:

  • result {Number} response code
  • message {Number} response message
  • data {Object}
    • isEnd {Boolean} this operation is completed or not
    • failedCount {Number} count of failed files
    • successCount {Number} count of success files

example:

server.on(ServerResponse.MOVE_OR_COPY, (response) => {
  console.log(response)
})
server.copy('/a/1.txt', '/a/b/1.txt')

.move(from,to)

parameters:
  • from {String} path that need to be moved
  • to {String} target path

Success will return move response info, including:

  • result {Number} response code
  • message {Number} response message
  • data {Object}
    • isEnd {Boolean} this operation is completed or not
    • failedCount {Number} count of failed files
    • successCount {Number} count of success files

example:

server.on(ServerResponse.MOVE_OR_COPY, (response) => {
  console.log(response)
})
server.move('/a/1.txt', '/a/b/1.txt')

.remove(path)

remove a single file parameters: path {String} file path

Success will return remove response info, including:

  • result {Number} response code
  • message {Number} response message
  • data {Object}
    • isEnd {Boolean} this operation is completed or not
    • failedCount {Number} count of failed files
    • successCount {Number} count of success files

example:

server.on(ServerResponse.REMOVE, (response) => {
  console.log(response)
})
server.remove('/1.txt')

.setGroupId(groudId)

set current group id parameters:

  • groudId {Number} default is 0

example:

server.setGroupId(1)

.getAttributes(path)

get folder attributes

parameters:

  • path {String} folder path

Success will return get attributes response info, including:

  • result {Number} response code
  • message {Number} response message
  • is_end {Boolean} this operation is completed or not
  • folder_count {Number} count of folders
  • file_count {Number} count of files
  • file_size {Number} file size
  • write_time {Number} last modified time

example:

server.on(ServerResponse.GET_ATTRIBUTES, (response) => {
  console.log(response)
})
server.getAttributes('/folder')

.close()

close file server connection, off all event listener

Event Methods

.on(command,handler)

Register an event handler for the given command

.once(command,handler)

Register a one-time event handler for the given command

.off(command,handler)

Remove an event handler for the given command

example:

const handler = (res) => console.log(res)
client.on(ClientResponse.LOGIN, handler)
client.once(ClientResponse.LOGIN, handler)
client.off(ClientResponse.LOGIN, handler)