首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Minio中共享文件

在Minio中共享文件
EN

Stack Overflow用户
提问于 2022-11-07 06:23:26
回答 1查看 47关注 0票数 -1

我正在做一个类似于演示-https://ej2.syncfusion.com/react/demos/#/material/file-manager/AmazonS3Provider的文件管理器,后端代码在春季引导中,我们已经将文件存储在minio中。我想通过生成minio文件桶的链接来与其他用户共享我的minio文件桶。我使用spring引导来编写代码,并使用minio存储文件。

我没有找到任何相关的尝试,所以研究这个话题。

EN

回答 1

Stack Overflow用户

发布于 2022-11-11 03:58:45

代码语言:javascript
复制
There is ListObjects API. examples are provided.

https://github.com/minio/minio-java/blob/master/examples/ListObjects.java

代码语言:javascript
复制
Presigned URL  is the way to share the objects as per s3 API Spec. 

https://github.com/minio/minio-java/blob/master/examples/GetPresignedObjectUrl.java

代码语言:javascript
复制
You could combine these two APIs to achieve the desired functionality.

https://min.io/docs/minio/linux/reference/minio-mc/mc-anonymous-set.html

代码语言:javascript
复制
Alternatively you could explore anonymous policies 

代码语言:javascript
复制
/*
 * MinIO Java SDK for Amazon S3 Compatible Cloud Storage, (C) 2015 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
 *
 *     https://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.
 */

import io.minio.ListObjectsArgs;
import io.minio.MinioClient;
import io.minio.Result;
import io.minio.errors.MinioException;
import io.minio.messages.Item;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

public class ListObjects {
  /** MinioClient.listObjects() example. */
  public static void main(String[] args)
  throws IOException, NoSuchAlgorithmException, InvalidKeyException {
    try {
      /* play.min.io for test and development. */
      MinioClient minioClient =
        MinioClient.builder()
        .endpoint("https://play.min.io")
        .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
        .build();

      /* Amazon S3: */
      // MinioClient minioClient =
      //     MinioClient.builder()
      //         .endpoint("https://s3.amazonaws.com")
      //         .credentials("YOUR-ACCESSKEY", "YOUR-SECRETACCESSKEY")
      //         .build();

      {
        // Lists objects information.
        Iterable < Result < Item >> results =
          minioClient.listObjects(ListObjectsArgs.builder().bucket("my-bucketname").build());

        for (Result < Item > result: results) {
          Item item = result.get();
          System.out.println(item.lastModified() + "\t" + item.size() + "\t" + item.objectName());
        }
      }

      {
        // Lists objects information recursively.
        Iterable < Result < Item >> results =
          minioClient.listObjects(
            ListObjectsArgs.builder().bucket("my-bucketname").recursive(true).build());

        for (Result < Item > result: results) {
          Item item = result.get();
          System.out.println(item.lastModified() + "\t" + item.size() + "\t" + item.objectName());
        }
      }

      {
        // Lists maximum 100 objects information those names starts with 'E' and after
        // 'ExampleGuide.pdf'.
        Iterable < Result < Item >> results =
          minioClient.listObjects(
            ListObjectsArgs.builder()
            .bucket("my-bucketname")
            .startAfter("ExampleGuide.pdf")
            .prefix("E")
            .maxKeys(100)
            .build());

        for (Result < Item > result: results) {
          Item item = result.get();
          System.out.println(item.lastModified() + "\t" + item.size() + "\t" + item.objectName());
        }
      }

      {
        // Lists maximum 100 objects information with version those names starts with 'E' and after
        // 'ExampleGuide.pdf'.
        Iterable < Result < Item >> results =
          minioClient.listObjects(
            ListObjectsArgs.builder()
            .bucket("my-bucketname")
            .startAfter("ExampleGuide.pdf")
            .prefix("E")
            .maxKeys(100)
            .includeVersions(true)
            .build());

        for (Result < Item > result: results) {
          Item item = result.get();
          System.out.println(
            item.lastModified() +
            "\t" +
            item.size() +
            "\t" +
            item.objectName() +
            " [" +
            item.versionId() +
            "]");
        }
      }
    } catch (MinioException e) {
      System.out.println("Error occurred: " + e);
    }
  }
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74342656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档