Minio有each bucket的政策。其中包含:Minio:桶策略如何與匿名/授權訪問相關?
- 只讀
- 只寫
- 讀+寫
- 無
如何在這些相關的匿名/授權訪問的文件夾?
就像我說的那樣,我想將一堆文件作爲只讀文件提供給沒有憑據的用戶(訪問密鑰和密鑰)。我該怎麼做?
Minio有each bucket的政策。其中包含:Minio:桶策略如何與匿名/授權訪問相關?
如何在這些相關的匿名/授權訪問的文件夾?
就像我說的那樣,我想將一堆文件作爲只讀文件提供給沒有憑據的用戶(訪問密鑰和密鑰)。我該怎麼做?
Minio客戶端提供的存儲桶策略是AWS S3提供的相同存儲桶策略的抽象版本。
客戶端根據桶和前綴的輸入字符串構造策略JSON。
意爲readonly - 匿名下載允許訪問包括能夠列出所需的前綴 只寫意味着對象 - 匿名上傳允許包括能夠列出所需的前綴不完整的上傳 讀 - 寫 - 匿名訪問上傳並下載所有對象。這也意味着完全的公衆訪問。 無 - 默認(無策略),這意味着所有的操作都需要通過所需的桶和前綴進行認證。
一堆文件應該位於某個特定的前綴下,可用於只讀訪問。比方說,你的前綴是「我的前綴/只讀/下載」,那麼,如果你正在使用
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);
}
}
}
一旦你的呼叫成功,所有的對象中「我的前綴/只讀/下載」是公開可讀即沒有訪問/祕密密鑰。
'公' 是有效的政策...
你可以改變這個政策: 安裝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
感謝您的澄清。我怎樣才能讓一些文件保密?像沒有匿名(讀)訪問? – Daniel
默認情況下,你的所有文件都是私人的,沒有特殊的電話使它們變成私人的。 – Harshavardhana
只是要清楚(所以你可以從'curl'測試),你實際訪問一個文件的URL是'https://play.minio.io:9000/my-bucketname/',其中''在上面的例子是'my_prefix /只讀/下載',可能你已經創建了這個路徑。如果你在桶中只有一個'file.jpg'文件,你可以在上面的調用中使用前綴'',URL爲'https://play.minio.io:9000/my-bucketname/ file.jpg'我發現如果我無法制作一個特定的工作示例,那麼它就是這樣。 –