Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 服务:亚马逊S3;状态代码:404;错误代码:NoSuchBucket;从IBM云对象存储获取文件时遇到问题_Java_Cloud_Ibm Cloud_Cloud Object Storage - Fatal编程技术网

Java 服务:亚马逊S3;状态代码:404;错误代码:NoSuchBucket;从IBM云对象存储获取文件时遇到问题

Java 服务:亚马逊S3;状态代码:404;错误代码:NoSuchBucket;从IBM云对象存储获取文件时遇到问题,java,cloud,ibm-cloud,cloud-object-storage,Java,Cloud,Ibm Cloud,Cloud Object Storage,我正在尝试从IBM云对象存储中的存储桶中获取文件。为此,首先我尝试读取一个bucket中所有可用的文件 private static List<String> listBuckets(AmazonS3 cosClient) { final List<Bucket> bucketList = cosClient.listBuckets(); List<String> bucketNames = new ArrayList<String>

我正在尝试从IBM云对象存储中的存储桶中获取文件。为此,首先我尝试读取一个bucket中所有可用的文件

private static List<String> listBuckets(AmazonS3 cosClient) {
    final List<Bucket> bucketList = cosClient.listBuckets();
    List<String> bucketNames = new ArrayList<String>();
    for (final Bucket bucket : bucketList) {
        bucketNames.add(bucket.getName());
    }
    return bucketNames;
}

public InputStream getCOSFile(AmazonS3 cosClient, String bucketName, String objectName){
    List<String> bucketNames = listBuckets(cosClient);
    if (bucketNames.contains(bucketName)){
        LOGGER.info(bucketName+" exists");
        getBucketContentsV2(cosClient, bucketName, 2);
       }
我还尝试用文档中的V1代码检索bucket中的所有文件,并得到相同的NoSuchBucket错误

下面是该方法的实现:

public static void listBuckets(AmazonS3 cosClient, String bucketName) {
    System.out.printf("Retrieving bucket contents from: %s\n", bucketName);
    ObjectListing objectListing = cosClient.listObjects(new ListObjectsRequest().withBucketName(bucketName));
    for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {
        System.out.printf("Item: %s (%s bytes)\n", objectSummary.getKey(), objectSummary.getSize());
    }
    System.out.println();
}
所以我尝试用代码来复制错误。我能够列出桶中的对象。我的第一个客户可能是配置错误

字符串bucketName=”“;//例如我唯一的桶名
字符串newBucketName=“”;//例如,我的另一个独特的桶名
字符串apiKey=“”;//例如“W00YiRnLW4k3fTjMB-oiB-2YSFTRFBIQWANC——P3byk”
字符串serviceInstanceId=”
public static void listBuckets(AmazonS3 cosClient, String bucketName) {
    System.out.printf("Retrieving bucket contents from: %s\n", bucketName);
    ObjectListing objectListing = cosClient.listObjects(new ListObjectsRequest().withBucketName(bucketName));
    for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {
        System.out.printf("Item: %s (%s bytes)\n", objectSummary.getKey(), objectSummary.getSize());
    }
    System.out.println();
}