1
0
mirror of https://github.com/minio/docs.git synced 2025-07-28 19:42:10 +03:00

Adding content and instructions for SDKs

This commit is contained in:
Daryl White
2022-06-27 13:11:34 -05:00
parent 79e342b6d4
commit 8d15d1714a
12 changed files with 4043 additions and 55 deletions

192
Makefile
View File

@ -38,6 +38,7 @@ linux:
@cp source/default-conf.py source/conf.py @cp source/default-conf.py source/conf.py
@make sync-minio-version @make sync-minio-version
@make sync-kes-version @make sync-kes-version
@make sync-sdks
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)/$(GITDIR)/$@" $(SPHINXOPTS) $(O) -t $@ @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)/$(GITDIR)/$@" $(SPHINXOPTS) $(O) -t $@
@npm run build @npm run build
@ -45,6 +46,7 @@ windows:
@cp source/default-conf.py source/conf.py @cp source/default-conf.py source/conf.py
@make sync-minio-version @make sync-minio-version
@make sync-kes-version @make sync-kes-version
@make sync-sdks
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)/$(GITDIR)/$@" $(SPHINXOPTS) $(O) -t $@ @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)/$(GITDIR)/$@" $(SPHINXOPTS) $(O) -t $@
@npm run build @npm run build
@ -52,6 +54,7 @@ macos:
@cp source/default-conf.py source/conf.py @cp source/default-conf.py source/conf.py
@make sync-minio-version @make sync-minio-version
@make sync-kes-version @make sync-kes-version
@make sync-sdks
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)/$(GITDIR)/$@" $(SPHINXOPTS) $(O) -t $@ @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)/$(GITDIR)/$@" $(SPHINXOPTS) $(O) -t $@
@npm run build @npm run build
@ -60,6 +63,7 @@ k8s:
@make sync-operator-version @make sync-operator-version
@make sync-minio-version @make sync-minio-version
@make sync-kes-version @make sync-kes-version
@make sync-sdks
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)/$(GITDIR)/$@" $(SPHINXOPTS) $(O) -t $@ @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)/$(GITDIR)/$@" $(SPHINXOPTS) $(O) -t $@
@npm run build @npm run build
@ -72,6 +76,8 @@ sync-operator-version:
@echo "Updating Operator to ${OPERATOR}" @echo "Updating Operator to ${OPERATOR}"
@$(eval kname = $(shell uname -s))
@case "${kname}" in \ @case "${kname}" in \
"Darwin") \ "Darwin") \
sed -i "" "s|OPERATOR|${OPERATOR}|g" source/conf.py;\ sed -i "" "s|OPERATOR|${OPERATOR}|g" source/conf.py;\
@ -125,42 +131,180 @@ sync-minio-version:
# #git add source/conf.py && git commit -m "Updating MinIO server to ${MINIO}"; \ # #git add source/conf.py && git commit -m "Updating MinIO server to ${MINIO}"; \
# fi # fi
sync-java-docs:
@echo "Retrieving Java docs from github.com/minio/minio-java"
@$(eval LATEST = $(shell wget -q https://api.github.com/repos/minio/minio-java/releases/latest -O - | jq -r '.tag_name'))
@echo "Latest stable is ${LATEST}"
$(shell wget -q -O source/developers/java/API.md https://raw.githubusercontent.com/minio/minio-java/${LATEST}/docs/API.md)
$(shell wget -q -O source/developers/java/quickstart.md https://raw.githubusercontent.com/minio/minio-java/${LATEST}/README.md)
sync-python-docs: sync-cpp-docs:
@echo "Retrieving Python docs from github.com/minio/minio-py" # C++ repo does not have any releases yet.
@$(eval LATEST = $(shell wget -q https://api.github.com/repos/minio/minio-py/releases/latest -O - | jq -r '.tag_name')) @echo "Retrieving C++ docs from github.com/minio/minio-js"
@echo "Latest stable is ${LATEST}" @$(eval CPPLATEST = $(shell wget -q https://api.github.com/repos/minio/minio-cpp/releases/latest -O - | jq -r '.tag_name'))
$(shell wget -q -O source/developers/python/API.md https://raw.githubusercontent.com/minio/minio-py/${LATEST}/docs/API.md) @echo "Latest stable is ${CPPLATEST}"
$(shell wget -q -O source/developers/python/quickstart.md https://raw.githubusercontent.com/minio/minio-py/${LATEST}/README.md) $(shell wget -q -O source/developers/cpp/API.md https://raw.githubusercontent.com/minio/minio-cpp/${CPPLATEST}/docs/API.md)
$(shell wget -q -O source/developers/cpp/quickstart.md https://raw.githubusercontent.com/minio/minio-cpp/${CPPLATEST}/README.md)
@$(eval kname = $(shell uname -s))
@case "${kname}" in \
"Darwin") \
sed -i "" "s|CPPVERSION|${CPPLATEST}|g" source/conf.py;\
;; \
*) \
sed -i "s|CPPVERSION|${CPPLATEST}|g" source/conf.py; \
;; \
esac
sync-dotnet-docs:
@echo "Retrieving .NET docs from github.com/minio/minio-dotnet"
@$(eval DOTNETLATEST = $(shell wget -q https://api.github.com/repos/minio/minio-dotnet/releases/latest -O - | jq -r '.tag_name'))
@echo "Latest stable is ${DOTNETLATEST}"
$(shell wget -q -O source/developers/dotnet/API.md https://raw.githubusercontent.com/minio/minio-dotnet/${DOTNETLATEST}/Docs/API.md)
# $(shell wget -q -O source/developers/dotnet/quickstart.md https://raw.githubusercontent.com/minio/minio-dotnet/${DOTNETLATEST}/README.md)
@$(eval kname = $(shell uname -s))
@case "${kname}" in \
"Darwin") \
sed -i "" "s|DOTNETVERSION|${DOTNETLATEST}|g" source/conf.py;\
;; \
*) \
sed -i "s|DOTNETVERSION|${DOTNETLATEST}|g" source/conf.py; \
;; \
esac
sync-go-docs: sync-go-docs:
@echo "Retrieving Go docs from github.com/minio/minio-go" @echo "Retrieving Go docs from github.com/minio/minio-go"
@$(eval LATEST = $(shell wget -q https://api.github.com/repos/minio/minio-go/releases/latest -O - | jq -r '.tag_name')) @$(eval GOLATEST = $(shell wget -q https://api.github.com/repos/minio/minio-go/releases/latest -O - | jq -r '.tag_name'))
@echo "Latest stable is ${LATEST}" @echo "Latest stable is ${GOLATEST}"
$(shell wget -q -O source/developers/go/API.md https://raw.githubusercontent.com/minio/minio-go/${LATEST}/docs/API.md) $(shell wget -q -O source/developers/go/API.md https://raw.githubusercontent.com/minio/minio-go/${GOLATEST}/docs/API.md)
$(shell wget -q -O source/developers/go/quickstart.md https://raw.githubusercontent.com/minio/minio-go/${LATEST}/README.md) $(shell wget -q -O source/developers/go/quickstart.md https://raw.githubusercontent.com/minio/minio-go/${GOLATEST}/README.md)
sync-dotnet-docs: @$(eval kname = $(shell uname -s))
@case "${kname}" in \
"Darwin") \
sed -i "" "s|GOVERSION|${GOLATEST}|g" source/conf.py;\
;; \
*) \
sed -i "s|GOVERSION|${GOLATEST}|g" source/conf.py; \
;; \
esac
sync-haskell-docs:
@echo "Retrieving Haskell docs from github.com/minio/minio-hs"
@$(eval HASKELLLATEST = $(shell wget -q https://api.github.com/repos/minio/minio-hs/releases/latest -O - | jq -r '.tag_name'))
@echo "Latest stable is ${HASKELLLATEST}"
$(shell wget -q -O source/developers/haskell/API.md https://raw.githubusercontent.com/minio/minio-hs/${HASKELLLATEST}/docs/API.md)
$(shell wget -q -O source/developers/haskell/quickstart.md https://raw.githubusercontent.com/minio/minio-hs/${HASKELLLATEST}/README.md)
@$(eval kname = $(shell uname -s))
@case "${kname}" in \
"Darwin") \
sed -i "" "s|HASKELLVERSION|${HASKELLLATEST}|g" source/conf.py;\
;; \
*) \
sed -i "s|HASKELLVERSION|${HASKELLLATEST}|g" source/conf.py; \
;; \
esac
sync-java-docs:
@echo "Retrieving Java docs from github.com/minio/minio-java"
@$(eval JAVALATEST = $(shell wget -q https://api.github.com/repos/minio/minio-java/releases/latest -O - | jq -r '.tag_name'))
@echo "Latest stable is ${JAVALATEST}"
$(shell wget -q -O source/developers/java/API.md https://raw.githubusercontent.com/minio/minio-java/${JAVALATEST}/docs/API.md)
$(shell wget -q -O source/developers/java/quickstart.md https://raw.githubusercontent.com/minio/minio-java/${JAVALATEST}/README.md)
@$(eval JAVAJARURL = https://repo1.maven.org/maven2/io/minio/minio/${JAVALATEST}/)
@$(eval kname = $(shell uname -s))
@case "${kname}" in \
"Darwin") \
sed -i "" "s|JAVAVERSION|${JAVALATEST}|g" source/conf.py;\
sed -i "" "s|JAVAURL|${JAVAJARURL}|g" source/conf.py;\
;; \
*) \
sed -i "s|JAVAVERSION|${JAVALATEST}|g" source/conf.py; \
sed -i "s|JAVAURL|${JAVAJARURL}|g" source/conf.py;\
;; \
esac
sync-javascript-docs:
@echo "Retrieving JavaScript docs from github.com/minio/minio-js"
@$(eval JAVASCRIPTLATEST = $(shell wget -q https://api.github.com/repos/minio/minio-js/releases/latest -O - | jq -r '.tag_name'))
@echo "Latest stable is ${JAVASCRIPTLATEST}"
$(shell wget -q -O source/developers/haskell/API.md https://raw.githubusercontent.com/minio/minio-js/${JAVASCRIPTLATEST}/docs/API.md)
$(shell wget -q -O source/developers/haskell/quickstart.md https://raw.githubusercontent.com/minio/minio-js/${JAVASCRIPTLATEST}/README.md)
@$(eval kname = $(shell uname -s))
@case "${kname}" in \
"Darwin") \
sed -i "" "s|JAVASCRIPTVERSION|${JAVASCRIPTLATEST}|g" source/conf.py;\
;; \
*) \
sed -i "s|JAVASCRIPTVERSION|${JAVASCRIPTLATEST}|g" source/conf.py; \
;; \
esac
sync-python-docs:
@echo "Retrieving Python docs from github.com/minio/minio-py" @echo "Retrieving Python docs from github.com/minio/minio-py"
@$(eval LATEST = $(shell wget -q https://api.github.com/repos/minio/minio-dotnet/releases/latest -O - | jq -r '.tag_name')) @$(eval PYTHONLATEST = $(shell wget -q https://api.github.com/repos/minio/minio-py/releases/latest -O - | jq -r '.tag_name'))
@echo "Latest stable is ${LATEST}" @echo "Latest stable is ${PYTHONLATEST}"
$(shell wget -q -O source/developers/dotnet/API.md https://raw.githubusercontent.com/minio/minio-dotnet/${LATEST}/Docs/API.md) $(shell wget -q -O source/developers/python/API.md https://raw.githubusercontent.com/minio/minio-py/${PYTHONLATEST}/docs/API.md)
$(shell wget -q -O source/developers/dotnet/quickstart.md https://raw.githubusercontent.com/minio/minio-dotnet/${LATEST}/README.md) $(shell wget -q -O source/developers/python/quickstart.md https://raw.githubusercontent.com/minio/minio-py/${PYTHONLATEST}/README.md)
@$(eval kname = $(shell uname -s))
@case "${kname}" in \
"Darwin") \
sed -i "" "s|PYTHONVERSION|${PYTHONLATEST}|g" source/conf.py;\
;; \
*) \
sed -i "s|PYTHONVERSION|${PYTHONLATEST}|g" source/conf.py; \
;; \
esac
sync-rust-docs:
# Rust repo does not have any releases yet.
@echo "Retrieving Rust docs from github.com/minio/minio-js"
@$(eval RUSTLATEST = $(shell wget -q https://api.github.com/repos/minio/minio-rs/releases/latest -O - | jq -r '.tag_name'))
@echo "Latest stable is ${RUSTLATEST}"
# $(shell wget -q -O source/developers/rust/API.md https://raw.githubusercontent.com/minio/minio-rs/${RUSTLATEST}/docs/API.md)
$(shell wget -q -O source/developers/rust/quickstart.md https://raw.githubusercontent.com/minio/minio-rs/${RUSTLATEST}/README.md)
@$(eval kname = $(shell uname -s))
@case "${kname}" in \
"Darwin") \
sed -i "" "s|RUSTVERSION|${RUSTLATEST}|g" source/conf.py;\
;; \
*) \
sed -i "s|RUSTVERSION|${RUSTLATEST}|g" source/conf.py; \
;; \
esac
sync-sdks:
# C++ and Rust repos do not have any releases yet.
# @make sync-cpp-docs
@make sync-dotnet-docs
@make sync-go-docs
@make sync-haskell-docs
@make sync-java-docs
@make sync-javascript-docs
@make sync-python-docs
# @make sync-rust-docs
sync-deps: sync-deps:
# C++ and Rust repos do not have any releases yet.
@echo "Synchronizing all external dependencies" @echo "Synchronizing all external dependencies"
@make sync-minio-version @make sync-minio-version
@make sync-kes-version @make sync-kes-version
@make sync-java-docs # @make sync-cpp-docs
@make sync-python-docs
@make sync-go-docs
@make sync-dotnet-docs @make sync-dotnet-docs
@make sync-go-docs
@make sync-haskell-docs
@make sync-java-docs
@make sync-javascript-docs
@make sync-python-docs
# @make sync-rust-docs
# Catch-all target: route all unknown targets to Sphinx using the new # Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).

View File

@ -264,5 +264,15 @@ rst_prolog = """
.. |MNMD| replace:: :abbr:`MNMD (Multi-Node Multi-Drive)` .. |MNMD| replace:: :abbr:`MNMD (Multi-Node Multi-Drive)`
.. |operator-version-stable| replace:: OPERATOR .. |operator-version-stable| replace:: OPERATOR
.. |cpp-sdk-version| replace:: CPPVERSION
.. |dotnet-sdk-version| replace:: DOTNETVERSION
.. |go-sdk-version| replace:: GOVERSION
.. |haskell-sdk-version| replace:: HASKELLVERSION
.. |java-jar-url| replace:: JAVAURL
.. |java-sdk-version| replace:: JAVAVERSION
.. |javascript-sdk-version| replace:: JAVASCRIPTVERSION
.. |python-sdk-version| replace:: PYTHONVERSION
.. |rust-sdk-version| replace:: RUSTVERSION
""" """

View File

@ -176,9 +176,9 @@ dotnet test ./Minio.Tests/Minio.Tests.csproj
* [SetPolicy.cs](https://github.com/minio/minio-dotnet/blob/master/Minio.Examples/Cases/SetBucketPolicy.cs) * [SetPolicy.cs](https://github.com/minio/minio-dotnet/blob/master/Minio.Examples/Cases/SetBucketPolicy.cs)
#### Bucket notification Operations #### Bucket notification Operations
* [GetBucketNotification.cs](./Minio.Examples/Cases/GetBucketNotification.cs) * [GetBucketNotification.cs](/Minio.Examples/Cases/GetBucketNotification.cs)
* [SetBucketNotification.cs](./Minio.Examples/Cases/SetBucketNotification.cs) * [SetBucketNotification.cs](/Minio.Examples/Cases/SetBucketNotification.cs)
* [RemoveAllBucketNotifications.cs](./Minio.Examples/Cases/RemoveAllBucketNotifications.cs) * [RemoveAllBucketNotifications.cs](/Minio.Examples/Cases/RemoveAllBucketNotifications.cs)
#### File Object Operations #### File Object Operations
* [FGetObject.cs](https://github.com/minio/minio-dotnet/blob/master/Minio.Examples/Cases/FGetObject.cs) * [FGetObject.cs](https://github.com/minio/minio-dotnet/blob/master/Minio.Examples/Cases/FGetObject.cs)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,18 @@
.. _minio-haskell-quickstart:
========================
Haskell Quickstart Guide
========================
.. contents:: Table of Contents
:local:
:depth: 2
.. include:: /developers/haskell/quickstart.md
:parser: myst_parser.sphinx_
.. toctree::
:titlesonly:
:hidden:
/developers/haskell/API.md

View File

@ -0,0 +1,248 @@
# MinIO JavaScript Library for Amazon S3 Compatible Cloud Storage [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io)
[![NPM](https://nodei.co/npm/minio.png)](https://nodei.co/npm/minio/)
The MinIO JavaScript Client SDK provides simple APIs to access any Amazon S3 compatible object storage server.
This quickstart guide will show you how to install the client SDK and execute an example JavaScript program. For a complete list of APIs and examples, please take a look at the [JavaScript Client API Reference](https://docs.min.io/docs/javascript-client-api-reference) documentation.
This document assumes that you have a working [nodejs](http://nodejs.org/) setup in place.
## Download from NPM
```sh
npm install --save minio
```
## Download from Source
```sh
git clone https://github.com/minio/minio-js
cd minio-js
npm install
npm install -g
```
## Using with TypeScript
```sh
npm install --save-dev @types/minio
```
## Initialize MinIO Client
You need five items in order to connect to MinIO object storage server.
| Params | Description |
| :------- | :------------ |
| endPoint | URL to object storage service. |
|port| TCP/IP port number. This input is optional. Default value set to ``80`` for HTTP and ``443`` for HTTPs.|
| accessKey | Access key is like user ID that uniquely identifies your account. |
| secretKey | Secret key is the password to your account. |
|useSSL |Set this value to 'true' to enable secure (HTTPS) access |
```js
var Minio = require('minio')
var minioClient = new Minio.Client({
endPoint: 'play.min.io',
port: 9000,
useSSL: true,
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG'
});
```
## Quick Start Example - File Uploader
This example program connects to an object storage server, makes a bucket on the server and then uploads a file to the bucket.
We will use the MinIO server running at [https://play.min.io](https://play.min.io) in this example. Feel free to use this service for testing and development. Access credentials shown in this example are open to the public.
#### file-uploader.js
```js
var Minio = require('minio')
// Instantiate the minio client with the endpoint
// and access keys as shown below.
var minioClient = new Minio.Client({
endPoint: 'play.min.io',
port: 9000,
useSSL: true,
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG'
});
// File that needs to be uploaded.
var file = '/tmp/photos-europe.tar'
// Make a bucket called europetrip.
minioClient.makeBucket('europetrip', 'us-east-1', function(err) {
if (err) return console.log(err)
console.log('Bucket created successfully in "us-east-1".')
var metaData = {
'Content-Type': 'application/octet-stream',
'X-Amz-Meta-Testing': 1234,
'example': 5678
}
// Using fPutObject API upload your file to the bucket europetrip.
minioClient.fPutObject('europetrip', 'photos-europe.tar', file, metaData, function(err, etag) {
if (err) return console.log(err)
console.log('File uploaded successfully.')
});
});
```
#### Run file-uploader
```sh
node file-uploader.js
Bucket created successfully in "us-east-1".
mc ls play/europetrip/
[2016-05-25 23:49:50 PDT] 17MiB photos-europe.tar
```
## API Reference
The full API Reference is available here.
* [Complete API Reference](https://docs.min.io/docs/javascript-client-api-reference)
### API Reference : Bucket Operations
* [`makeBucket`](https://docs.min.io/docs/javascript-client-api-reference#makeBucket)
* [`listBuckets`](https://docs.min.io/docs/javascript-client-api-reference#listBuckets)
* [`bucketExists`](https://docs.min.io/docs/javascript-client-api-reference#bucketExists)
* [`removeBucket`](https://docs.min.io/docs/javascript-client-api-reference#removeBucket)
* [`listObjects`](https://docs.min.io/docs/javascript-client-api-reference#listObjects)
* [`listObjectsV2`](https://docs.min.io/docs/javascript-client-api-reference#listObjectsV2)
* [`listObjectsV2WithMetadata`](https://docs.min.io/docs/javascript-client-api-reference#listObjectsV2WithMetadata) (Extension)
* [`listIncompleteUploads`](https://docs.min.io/docs/javascript-client-api-reference#listIncompleteUploads)
* [`getBucketVersioning`](https://docs.min.io/docs/javascript-client-api-reference#getBucketVersioning)
* [`setBucketVersioning`](https://docs.min.io/docs/javascript-client-api-reference#setBucketVersioning)
* [`setBucketLifecycle`](https://docs.min.io/docs/javascript-client-api-reference#setBucketLifecycle)
* [`getBucketLifecycle`](https://docs.min.io/docs/javascript-client-api-reference#getBucketLifecycle)
* [`removeBucketLifecycle`](https://docs.min.io/docs/javascript-client-api-reference#removeBucketLifecycle)
* [`getObjectLockConfig`](https://docs.min.io/docs/javascript-client-api-reference#getObjectLockConfig)
* [`setObjectLockConfig`](https://docs.min.io/docs/javascript-client-api-reference#setObjectLockConfig)
### API Reference : File Object Operations
* [`fPutObject`](https://docs.min.io/docs/javascript-client-api-reference#fPutObject)
* [`fGetObject`](https://docs.min.io/docs/javascript-client-api-reference#fGetObject)
### API Reference : Object Operations
* [`getObject`](https://docs.min.io/docs/javascript-client-api-reference#getObject)
* [`putObject`](https://docs.min.io/docs/javascript-client-api-reference#putObject)
* [`copyObject`](https://docs.min.io/docs/javascript-client-api-reference#copyObject)
* [`statObject`](https://docs.min.io/docs/javascript-client-api-reference#statObject)
* [`removeObject`](https://docs.min.io/docs/javascript-client-api-reference#removeObject)
* [`removeObjects`](https://docs.min.io/docs/javascript-client-api-reference#removeObjects)
* [`removeIncompleteUpload`](https://docs.min.io/docs/javascript-client-api-reference#removeIncompleteUpload)
* [`selectObjectContent`](https://docs.min.io/docs/javascript-client-api-reference#selectObjectContent)
### API Reference : Presigned Operations
* [`presignedGetObject`](https://docs.min.io/docs/javascript-client-api-reference#presignedGetObject)
* [`presignedPutObject`](https://docs.min.io/docs/javascript-client-api-reference#presignedPutObject)
* [`presignedPostPolicy`](https://docs.min.io/docs/javascript-client-api-reference#presignedPostPolicy)
### API Reference : Bucket Notification Operations
* [`getBucketNotification`](https://docs.min.io/docs/javascript-client-api-reference#getBucketNotification)
* [`setBucketNotification`](https://docs.min.io/docs/javascript-client-api-reference#setBucketNotification)
* [`removeAllBucketNotification`](https://docs.min.io/docs/javascript-client-api-reference#removeAllBucketNotification)
* [`listenBucketNotification`](https://docs.min.io/docs/javascript-client-api-reference#listenBucketNotification) (MinIO Extension)
### API Reference : Bucket Policy Operations
* [`getBucketPolicy`](https://docs.min.io/docs/javascript-client-api-reference#getBucketPolicy)
* [`setBucketPolicy`](https://docs.min.io/docs/javascript-client-api-reference#setBucketPolicy)
## Full Examples
#### Full Examples : Bucket Operations
* [list-buckets.js](https://github.com/minio/minio-js/blob/master/examples/list-buckets.js)
* [list-objects.js](https://github.com/minio/minio-js/blob/master/examples/list-objects.js)
* [list-objects-v2.js](https://github.com/minio/minio-js/blob/master/examples/list-objects-v2.js)
* [list-objects-v2-with-metadata.js](https://github.com/minio/minio-js/blob/master/examples/list-objects-v2-with-metadata.js) (Extension)
* [bucket-exists.js](https://github.com/minio/minio-js/blob/master/examples/bucket-exists.js)
* [make-bucket.js](https://github.com/minio/minio-js/blob/master/examples/make-bucket.js)
* [remove-bucket.js](https://github.com/minio/minio-js/blob/master/examples/remove-bucket.js)
* [list-incomplete-uploads.js](https://github.com/minio/minio-js/blob/master/examples/list-incomplete-uploads.js)
* [get-bucket-versioning.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-versioning.js)
* [set-bucket-versioning.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-versioning.js)
* [set-bucket-tagging.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-tagging.js)
* [get-bucket-tagging.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-tagging.js)
* [remove-bucket-tagging.js](https://github.com/minio/minio-js/blob/master/examples/remove-bucket-tagging.js)
* [set-bucket-lifecycle.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-lifecycle.js)
* [get-bucket-lifecycle.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-lifecycle.js)
* [remove-bucket-lifecycle.js](https://github.com/minio/minio-js/blob/master/examples/remove-bucket-lifecycle.js)
* [get-object-lock-config.js](https://github.com/minio/minio-js/blob/master/examples/get-object-lock-config.js)
* [set-object-lock-config.js](https://github.com/minio/minio-js/blob/master/examples/set-object-lock-config.js)
* [set-bucket-replication.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-replication.js)
* [get-bucket-replication.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-replication.js)
* [remove-bucket-replication.js](https://github.com/minio/minio-js/blob/master/examples/remove-bucket-replication.js)
#### Full Examples : File Object Operations
* [fput-object.js](https://github.com/minio/minio-js/blob/master/examples/fput-object.js)
* [fget-object.js](https://github.com/minio/minio-js/blob/master/examples/fget-object.js)
#### Full Examples : Object Operations
* [put-object.js](https://github.com/minio/minio-js/blob/master/examples/put-object.js)
* [get-object.js](https://github.com/minio/minio-js/blob/master/examples/get-object.js)
* [copy-object.js](https://github.com/minio/minio-js/blob/master/examples/copy-object.js)
* [get-partialobject.js](https://github.com/minio/minio-js/blob/master/examples/get-partialobject.js)
* [remove-object.js](https://github.com/minio/minio-js/blob/master/examples/remove-object.js)
* [remove-incomplete-upload.js](https://github.com/minio/minio-js/blob/master/examples/remove-incomplete-upload.js)
* [stat-object.js](https://github.com/minio/minio-js/blob/master/examples/stat-object.js)
* [get-object-retention.js](https://github.com/minio/minio-js/blob/master/examples/get-object-retention.js)
* [put-object-retention.js](https://github.com/minio/minio-js/blob/master/examples/put-object-retention.js)
* [put-object-tagging.js](https://github.com/minio/minio-js/blob/master/examples/put-object-tagging.js)
* [get-object-tagging.js](https://github.com/minio/minio-js/blob/master/examples/get-object-tagging.js)
* [remove-object-tagging.js](https://github.com/minio/minio-js/blob/master/examples/remove-object-tagging.js)
* [set-object-legal-hold.js](https://github.com/minio/minio-js/blob/master/examples/set-object-legalhold.js)
* [get-object-legal-hold.js](https://github.com/minio/minio-js/blob/master/examples/get-object-legal-hold.js)
* [compose-object.js](https://github.com/minio/minio-js/blob/master/examples/compose-object.js)
* [select-object-content.js](https://github.com/minio/minio-js/blob/master/examples/select-object-content.js)
#### Full Examples : Presigned Operations
* [presigned-getobject.js](https://github.com/minio/minio-js/blob/master/examples/presigned-getobject.js)
* [presigned-putobject.js](https://github.com/minio/minio-js/blob/master/examples/presigned-putobject.js)
* [presigned-postpolicy.js](https://github.com/minio/minio-js/blob/master/examples/presigned-postpolicy.js)
#### Full Examples: Bucket Notification Operations
* [get-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-notification.js)
* [set-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-notification.js)
* [remove-all-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/remove-all-bucket-notification.js)
* [listen-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/minio/listen-bucket-notification.js) (MinIO Extension)
#### Full Examples: Bucket Policy Operations
* [get-bucket-policy.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-policy.js)
* [set-bucket-policy.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-policy.js)
## Custom Settings
* [setAccelerateEndPoint](https://github.com/minio/minio-js/blob/master/examples/set-accelerate-end-point.js)
## Explore Further
* [Complete Documentation](https://docs.min.io)
* [MinIO JavaScript Client SDK API Reference](https://docs.min.io/docs/javascript-client-api-reference)
* [Build your own Shopping App Example- Full Application Example ](https://github.com/minio/minio-js-store-app)
## Contribute
[Contributors Guide](https://github.com/minio/minio-js/blob/master/CONTRIBUTING.md)
[![Build Status](https://travis-ci.org/minio/minio-js.svg)](https://travis-ci.org/minio/minio-js)
[![Build status](https://ci.appveyor.com/api/projects/status/1d05e6nvxcelmrak?svg=true)](https://ci.appveyor.com/project/harshavardhana/minio-js)

View File

@ -12,19 +12,19 @@ Java 1.8 or above.
<dependency> <dependency>
<groupId>io.minio</groupId> <groupId>io.minio</groupId>
<artifactId>minio</artifactId> <artifactId>minio</artifactId>
<version>8.4.0</version> <version>8.4.2</version>
</dependency> </dependency>
``` ```
## Gradle usage ## Gradle usage
``` ```
dependencies { dependencies {
implementation("io.minio:minio:8.4.0") implementation("io.minio:minio:8.4.2")
} }
``` ```
## JAR download ## JAR download
The latest JAR can be downloaded from [here](https://repo1.maven.org/maven2/io/minio/minio/8.4.0/) The latest JAR can be downloaded from [here](https://repo1.maven.org/maven2/io/minio/minio/8.4.2/)
## Quick Start Example - File Uploader ## Quick Start Example - File Uploader
This example program connects to an object storage server, makes a bucket on the server and then uploads a file to the bucket. This example program connects to an object storage server, makes a bucket on the server and then uploads a file to the bucket.
@ -92,12 +92,12 @@ public class FileUploader {
#### Compile FileUploader #### Compile FileUploader
```sh ```sh
$ javac -cp minio-8.4.0-all.jar FileUploader.java $ javac -cp minio-8.4.2-all.jar FileUploader.java
``` ```
#### Run FileUploader #### Run FileUploader
```sh ```sh
$ java -cp minio-8.4.0-all.jar:. FileUploader $ java -cp minio-8.4.2-all.jar:. FileUploader
'/home/user/Photos/asiaphotos.zip' is successfully uploaded as object 'asiaphotos-2015.zip' to bucket 'asiatrip'. '/home/user/Photos/asiaphotos.zip' is successfully uploaded as object 'asiaphotos-2015.zip' to bucket 'asiatrip'.
$ mc ls play/asiatrip/ $ mc ls play/asiatrip/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,18 @@
.. _minio-javascript-quickstart:
===========================
JavaScript Quickstart Guide
===========================
.. contents:: Table of Contents
:local:
:depth: 2
.. include:: /developers/javascript/quickstart.md
:parser: myst_parser.sphinx_
.. toctree::
:titlesonly:
:hidden:
/developers/javascript/API.md

View File

@ -0,0 +1,177 @@
# MinIO Client SDK for Haskell [![Build Status](https://travis-ci.org/minio/minio-hs.svg?branch=master)](https://travis-ci.org/minio/minio-hs)[![Hackage](https://img.shields.io/hackage/v/minio-hs.svg)](https://hackage.haskell.org/package/minio-hs)[![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io)
The MinIO Haskell Client SDK provides simple APIs to access [MinIO](https://min.io) and Amazon S3 compatible object storage server.
## Minimum Requirements
- The Haskell [stack](https://docs.haskellstack.org/en/stable/README/)
## Installation
### Add to your project
Simply add `minio-hs` to your project's `.cabal` dependencies section or if you are using hpack, to your `package.yaml` file as usual.
### Try it out directly with `ghci`
From your home folder or any non-haskell project directory, just run:
```sh
stack install minio-hs
```
Then start an interpreter session and browse the available APIs with:
```sh
$ stack ghci
> :browse Network.Minio
```
## Examples
The [examples](https://github.com/minio/minio-hs/tree/master/examples) folder contains many examples that you can try out and use to learn and to help with developing your own projects.
### Quick-Start Example - File Uploader
This example program connects to a MinIO object storage server, makes a bucket on the server and then uploads a file to the bucket.
We will use the MinIO server running at https://play.min.io in this example. Feel free to use this service for testing and development. Access credentials are present in the library and are open to the public.
### FileUploader.hs
``` haskell
#!/usr/bin/env stack
-- stack --resolver lts-14.11 runghc --package minio-hs --package optparse-applicative --package filepath
--
-- MinIO Haskell SDK, (C) 2017-2019 MinIO, Inc.
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
--
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
import Network.Minio
import Data.Monoid ((<>))
import Data.Text (pack)
import Options.Applicative
import System.FilePath.Posix
import UnliftIO (throwIO, try)
import Prelude
-- | The following example uses minio's play server at
-- https://play.min.io. The endpoint and associated
-- credentials are provided via the libary constant,
--
-- > minioPlayCI :: ConnectInfo
--
-- optparse-applicative package based command-line parsing.
fileNameArgs :: Parser FilePath
fileNameArgs = strArgument
(metavar "FILENAME"
<> help "Name of file to upload to AWS S3 or a MinIO server")
cmdParser = info
(helper <*> fileNameArgs)
(fullDesc
<> progDesc "FileUploader"
<> header
"FileUploader - a simple file-uploader program using minio-hs")
main :: IO ()
main = do
let bucket = "my-bucket"
-- Parse command line argument
filepath <- execParser cmdParser
let object = pack $ takeBaseName filepath
res <- runMinio minioPlayCI $ do
-- Make a bucket; catch bucket already exists exception if thrown.
bErr <- try $ makeBucket bucket Nothing
-- If the bucket already exists, we would get a specific
-- `ServiceErr` exception thrown.
case bErr of
Left BucketAlreadyOwnedByYou -> return ()
Left e -> throwIO e
Right _ -> return ()
-- Upload filepath to bucket; object name is derived from filepath.
fPutObject bucket object filepath defaultPutObjectOptions
case res of
Left e -> putStrLn $ "file upload failed due to " ++ show e
Right () -> putStrLn "file upload succeeded."
```
### Run FileUploader
``` sh
./FileUploader.hs "path/to/my/file"
```
## Contribute
[Contributors Guide](https://github.com/minio/minio-hs/blob/master/CONTRIBUTING.md)
### Development
To setup:
```sh
git clone https://github.com/minio/minio-hs.git
cd minio-hs/
stack install
```
Tests can be run with:
```sh
stack test
```
A section of the tests use the remote MinIO Play server at `https://play.min.io` by default. For library development, using this remote server maybe slow. To run the tests against a locally running MinIO live server at `http://localhost:9000`, just set the environment `MINIO_LOCAL` to any value (and unset it to switch back to Play).
To run the live server tests, set a build flag as shown below:
```sh
stack test --flag minio-hs:live-test
# OR against a local MinIO server with:
MINIO_LOCAL=1 stack test --flag minio-hs:live-test
```
The configured CI system always runs both test-suites for every change.
Documentation can be locally built with:
```sh
stack haddock
```

View File

@ -6,39 +6,241 @@ Software Development Kits (SDK)
.. default-domain:: minio .. default-domain:: minio
.. contents:: Table of Contents
:local:
:depth: 1
MinIO publishes the following Software Development Kits (SDK): MinIO publishes the following Software Development Kits (SDK):
.. list-table:: 1. :ref:`.NET <dotnet-sdk>`
:header-rows: 1 2. :ref:`Golang <go-sdk>`
:widths: 30 30 40 3. :ref:`Haskell <haskell-sdk>`
:width: 100% 4. :ref:`Java <java-sdk>`
5. :ref:`JavaScript <javascript-sdk>`
6. :ref:`Python <python-sdk>`
* - Language
- Reference
- Download
* - Java (``minio-java``) ..
- :ref:`MinIO Java SDK Reference <minio-java-quickstart>` C++ repo does not have any releases yet. Once released, unblock this section and add to toctree and numbered list.
- ToDo
.. _cpp-sdk:
* - Python (``minio-py``) C++ (``minio-cpp``)
- :doc:`MinIO Python SDK Reference </developers/python/minio-py>` -------------------
- ToDo
* - Go (``minio-go``) Latest Version
- :doc:`MinIO Go SDK Reference </developers/go/minio-go>` |cpp-sdk-version|
- ToDo
* - .NET (``minio-dotnet``) Reference
- :doc:`MinIO .NET SDK Reference </developers/dotnet/minio-dotnet>` :doc:`MinIO C++ SDK Reference </developers/cpp/minio-cpp>`
- ToDo
Install
- ``vcpkg``
.. code-block:: shell
:class: copyable
vcpkg install minio-cpp
- Source
.. code-block:: shell
:class: copyable
git clone https://github.com/minio/minio-cpp
cd minio-cpp
wget --quiet -O vcpkg-master.zip https://github.com/microsoft/vcpkg/archive/refs/heads/master.zip
unzip -qq vcpkg-master.zip
./vcpkg-master/bootstrap-vcpkg.sh
./vcpkg-master/vcpkg integrate install
cmake -B ./build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=./vcpkg-master/scripts/buildsystems/vcpkg.cmake
cmake --build ./build --config Debug
.. _dotnet-sdk:
.NET (``minio-dotnet``)
-----------------------
Latest Version
|dotnet-sdk-version|
Reference
:doc:`MinIO .NET SDK Reference </developers/dotnet/minio-dotnet>`
Download from NuGet
Run the following command in the NuGet Package Manager Console.
.. code-block:: shell
:class: copyable
PM> Install-Package Minio
.. _go-sdk:
Go (``minio-go``)
-----------------
Latest Version
|go-sdk-version|
Reference
:doc:`MinIO Go SDK Reference </developers/go/minio-go>`
Download from GitHub
.. code-block:: go
:class: copyable
go get github.com/minio/minio-go/v7
.. _haskell-sdk:
Haskell (``minio-hs``)
----------------------
Latest Version
|haskell-sdk-version|
Reference
:doc:`MinIO Haskell SDK Reference </developers/haskell/minio-haskell>`
Install
Add ``minio-hs`` to your project's ``.cabal`` dependencies section.
or
If you are using ``hpack``, add ``minio-hs`` to your ``package.yaml`` file.
.. _java-sdk:
Java (``minio-java``)
---------------------
Latest version
|java-sdk-version|
Reference
:ref:`MinIO Java SDK Reference <minio-java-quickstart>`
Install methods
- Maven
.. code-block:: java
:class: copyable
:substitutions:
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>|java-sdk-version|</version>
</dependency>
- Gradle
.. code-block:: java
:class: copyable
:substitutions:
dependencies {
implementation("io.minio:minio:|java-sdk-version|")
}
- JAR
Download the latest JAR file for |java-sdk-version| of the SDK from |java-jar-url|.
.. _javascript-sdk:
JavaScript (``minio-js``)
-------------------------
Latest Version
|javascript-sdk-version|
Reference
:doc:`MinIO JavaScript SDK Reference </developers/javascript/minio-javascript>`
Install
- NPM
.. code-block:: shell
:class: copyable
npm install --save minio
- Source
.. code-block:: shell
:class: copyable
git clone https://github.com/minio/minio-js
cd minio-js
npm install
npm install -g
- TypeScript
.. code-block:: shell
:class: copyable
npm install --save-dev @types/minio
.. _python-sdk:
Python (``minio-py``)
---------------------
Latest Version
|python-sdk-version|
Reference
:doc:`MinIO Python SDK Reference </developers/python/minio-py>`
Install Methods
- pip
.. code-block:: shell
:class: copyable
pip3 install minio
- source
.. code-block:: shell
:class: copyable
git clone https://github.com/minio/minio-py
cd minio-py
python setup.py install
..
Rust SDK repo does not have any releases yet. Once released, unblock this section and add to toctree.
.. _rust-sdk:
Rust (``minio-rs``)
-------------------
Latest Version
|rust-sdk-version|
Reference
:doc:`MinIO Rust SDK Reference </developers/rust/minio-rust>`
Install
To Do
..
Will need to add C++ and Rust to the toctree once released.
.. toctree:: .. toctree::
:titlesonly: :titlesonly:
:hidden: :hidden:
:maxdepth: 1 :maxdepth: 1
/developers/java/minio-java /developers/dotnet/minio-dotnet
/developers/python/minio-py
/developers/go/minio-go /developers/go/minio-go
/developers/dotnet/minio-dotnet /developers/haskell/minio-haskell
/developers/java/minio-java
/developers/javascript/minio-javascript
/developers/python/minio-py

View File

@ -5,7 +5,7 @@ MinIO Python SDK is Simple Storage Service (aka S3) client to perform bucket and
For a complete list of APIs and examples, please take a look at the [Python Client API Reference](https://docs.min.io/docs/python-client-api-reference) For a complete list of APIs and examples, please take a look at the [Python Client API Reference](https://docs.min.io/docs/python-client-api-reference)
## Minimum Requirements ## Minimum Requirements
Python 3.6 or higher. Python 3.7 or higher.
## Download using pip ## Download using pip