2017-03-06 2 views

답변

4

Minio 클라이언트 측에서 제공하는 버킷 정책은 AWS S3이 제공하는 동일한 버킷 정책의 추상화 된 버전입니다.

클라이언트는 버킷 및 접두사의 입력 문자열을 기반으로 정책 JSON을 생성합니다.

읽기 전용 의미 - 익명 다운로드 액세스가 허용 쓰기 전용 의미 원하는 접두사 개체를 나열 할 수있는 포함 - 익명 액세스를 업로드 - 익명의 업로드를 허용 원하는 접두사 읽기 쓰기 불완전한 업로드를 나열 할 수있는 포함 모든 개체를 다운로드하십시오. 이것은 또한 모든 공개 액세스를 의미합니다. 없음 - 기본값 (정책 없음)은 모든 작업을 원하는 버킷 및 접두사에 대해 인증해야 함을 의미합니다.

특정 접두사 아래에 있어야하는 파일 묶음은 읽기 전용 액세스로 사용할 수 있습니다. 당신의 접두사 '내 접두사/읽기 전용/다운로드'다음 당신의 호출이 성공하면 당신 안에 모든 개체를

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

감사 : 다음 엠씨 (minio 클라이언트) 등을 설치합니다. 일부 파일을 비공개로 만들려면 어떻게해야합니까? 익명 (읽기) 액세스처럼? – 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

'대중'이 정책을 변경할 수 있습니다

... 유효한 정책 : 정화에 대한

 
# 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