Java 服务:亚马逊S3;状态代码:404;错误代码:NoSuchBucket;从IBM云对象存储获取文件时遇到问题
我正在尝试从IBM云对象存储中的存储桶中获取文件。为此,首先我尝试读取一个bucket中所有可用的文件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>
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();
}