1.1.0 • Published 4 years ago
lotec-storage-connector v1.1.0
lotec-storage-connector
This library is fundamentally created to connect with AWS-S3.
Install
npm install --save lotec-storage-connector
Usage
import React, { useState } from 'react'
import StorageConnector from 'lotec-storage-connector'
const App = () => {
const [selectedFile, setSelectedFile] = useState('')
const [isUploaded, setIsUploaded] = useState(false)
const config = {
accessKeyId: 'YOUR_ACCESS_KEY',
secretAccessKey: 'YOUR_SECRET_ACCESS_KEY',
region: 'YOUR_REGION',
bucketName: 'YOUR_BUCKET_NAME'
}
const [storageConnector] = useState(() => new StorageConnector(config))
const upload = async () => {
storageConnector.consoleLogStorageClient()
const metadata = {
key: 'value'
}
const uploadParams = storageConnector.constructUploadParams(
'public-read',
'example_storage_connector/' + selectedFile.name,
selectedFile.type,
selectedFile,
metadata
)
storageConnector.uploadToStorageService(uploadParams)
}
const downloadObject = () => {
const params = {
Key: 'example_storage_connector/' + selectedFile.name
}
storageConnector.getObjectFromStorageService(params)
}
const headObject = async () => {
const params = {
Key: 'example_storage_connector/' + selectedFile.name
}
try {
const headObject = await storageConnector.headObjectFromStorageService(
params
)
console.log(headObject)
setIsUploaded(true)
} catch (err) {
console.log(err)
}
}
const listObjects = async () => {
const params = { Prefix: 'example_storage_connector/' }
const listObjects = await storageConnector.listObjectsFromStorageService(
params
)
console.log(listObjects)
}
const deleteObject = async () => {
const params = {
Key: 'example_storage_connector/' + selectedFile.name
}
try {
await storageConnector.deleteObjectFromStorageService(params)
console.log(`${selectedFile.name} has successfully deleted`)
} catch (err) {
console.log(err)
}
}
return (
<div>
<div>
<input
type='file'
onChange={(event) => {
console.log(event.target.files[0])
setSelectedFile(event.target.files[0])
}}
></input>
<button onClick={upload}>Upload</button>
</div>
<div>
<button onClick={listObjects}>List Objects</button>
</div>
<div>
<button onClick={headObject}>Check Uploaded Object Exists</button>
</div>
<div>
<button disabled={!isUploaded} onClick={downloadObject}>
Download Object
</button>
</div>
<div>
<button disabled={!isUploaded} onClick={deleteObject}>
Delete Object
</button>
</div>
</div>
)
}
export default App