2017-03-06 10 views
4

Minioにはeach bucketのポリシーがあります。どちらが含まれていますMinio:匿名/許可アクセスに関連するバケットポリシーはどのようになっていますか?

  • 読み取り専用
  • 書き込み専用
  • 読む+
  • なし

がどのようにこれらのフォルダへの匿名/許可のアクセスに関連している書きますか?
いいえ、クレデンシャルなし(アクセスキーと秘密キー)のユーザーには、複数のファイルを読み取り専用で利用できます。どうしたらいいですか?

答えて

4

Minioクライアント側が提供するバケットポリシーは、AWS S3が提供する同じバケットポリシーの抽象化バージョンです。

クライアントはバケットとプレフィックスの入力文字列に基づいてポリシーJSONを作成します。

読み取り専用の意味 - 匿名ダウンロードのアクセスが許可されている 書き込み専用の意味の接頭辞にオブジェクトを一覧表示することができるという含まれています - 匿名アクセスをアップロードする - 匿名のアップロードが許可されている希望プレフィックスに 読み書き不完全なアップロードを一覧表示することができることが含ますべてのオブジェクトをダウンロードします。これは完全なパブリックアクセスを意味します。 None - デフォルト(ポリシーなし)です。これは、すべての操作を目的のバケットとプレフィックスに向けて認証する必要があることを意味します。

ファイルの束は、特定の接頭辞の下に置く必要がありますが、読み取り専用アクセスで利用できるようにすることができます。あなたは

import java.io.IOException; 
import java.security.NoSuchAlgorithmException; 
import java.security.InvalidKeyException; 

import org.xmlpull.v1.XmlPullParserException; 

import io.minio.MinioClient; 
import io.minio.policy.PolicyType; 
import io.minio.errors.MinioException; 

public class SetBucketPolicy { 
    /** 
    * MinioClient.setBucketPolicy() example. 
    */ 
    public static void main(String[] args) 
    throws IOException, NoSuchAlgorithmException, InvalidKeyException, XmlPullParserException { 
    try { 
     /* play.minio.io for test and development. */ 
     MinioClient minioClient = new MinioClient("https://play.minio.io:9000", "Q3AM3UQ867SPQQA43P2F", 
               "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"); 

     /* Amazon S3: */ 
     // MinioClient minioClient = new MinioClient("https://s3.amazonaws.com", "YOUR-ACCESSKEYID", 
     //           "YOUR-SECRETACCESSKEY"); 

     minioClient.setBucketPolicy("my-bucketname", "my-prefix/read-only/downloads", PolicyType.READ_ONLY); 
    } catch (MinioException e) { 
     System.out.println("Error occurred: " + e); 
    } 
    } 
} 

を使用している場合は、あなたの呼び出しが成功すると、「私のプレフィックス/読み取り専用/ダウンロード」内のすべてのオブジェクトがあり、その後「読み取り専用/ダウンロード/私の接頭辞」あなたの接頭辞であると言うことができますアクセス可能/秘密鍵なしで公開可能である。

+0

感謝を。一部のファイルを非公開にするにはどうすればよいですか?匿名(読み取り)アクセスと同じですか? – Daniel

+0

デフォルトでは、すべてのファイルは非公開です。非公開にする特別な呼び出しはありません。 – Harshavardhana

+2

( 'curl'でテストできるので)実際にファイルにアクセスするURLは' https://play.minio.io:9000/my-bucketname/ 'です。ここで' 'は上記の例は 'my_prefix/read-only/downloads'です。あなたがこのパスを作成したと思われます。バケツに 'file.jpg'というファイルがある場合は、上記の呼び出しで接頭辞' 'があり、URLは' https://play.minio.io:9000/my-bucketname/ 'になりますfile.jpg'具体的な実例を作ることができなければ、混乱していることが分かりました。 –

0

は '公共' は有効な政策である...

あなたは、このポリシーを変更することができます MC(minioクライアント)をインストールしてから:明確化のため

 
# list default hosts after install: 
mc config host ls 

# remove all hosts: mc config host rm {hostName} 
mc config host rm local 

# add your host: mc config host add {hostName} {url} {apiKey} {apiSecret} 
mc config host add local http://127.0.0.1:9000 ClientIdASSDSD ClientSecretASASASdsasdasdasdasd 

# create bucket: mc mb {host}/{bucket} 
mc mb local/mybucket 

# change bucket policy: mc policy {policy} {host}/{bucket} 
mc policy public local/mybucket 
関連する問題