の代わりにバケットにアップロードされているオブジェクトである以下のコードアマゾンS3:私はAmazon S3のバケットにファイルをアップロードするために使用されているいるコード上記のように、 `key`がファイル
import java.io.File;
import java.io.IOException;
import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.PutObjectRequest;
public class UploadObjectSingleOperation {
private static String bucketName = "*******";
private static String keyName = "************";
private static String uploadFileName = "C:/Users/Yohan/Desktop/asdasd.html";
public static void main(String[] args) throws IOException {
BasicAWSCredentials creds = new BasicAWSCredentials(keyName, "**********");
AmazonS3 s3client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds)).withRegion(Regions.AP_SOUTH_1).build();
// AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider());
try {
System.out.println("Uploading a new object to S3 from a file\n");
File file = new File(uploadFileName);
s3client.putObject(new PutObjectRequest(
bucketName, keyName, file));
} catch (AmazonServiceException ase) {
System.out.println("Caught an AmazonServiceException, which " +
"means your request made it " +
"to Amazon S3, but was rejected with an error response" +
" for some reason.");
System.out.println("Error Message: " + ase.getMessage());
System.out.println("HTTP Status Code: " + ase.getStatusCode());
System.out.println("AWS Error Code: " + ase.getErrorCode());
System.out.println("Error Type: " + ase.getErrorType());
System.out.println("Request ID: " + ase.getRequestId());
} catch (AmazonClientException ace) {
System.out.println("Caught an AmazonClientException, which " +
"means the client encountered " +
"an internal error while trying to " +
"communicate with S3, " +
"such as not being able to access the network.");
System.out.println("Error Message: " + ace.getMessage());
}
}
}
OKを確認してください。私のS3バケットは、クライアントに最も近い場所にあります。Asia Pacific - Mumbai
。
上記のコードは正常に動作します、しかし、私は次のように気づきました。
- アップロードされる内容は、常に
key
です。実際のファイルはアップロードされていません。下の画像をご確認ください。
なぜこの出来事はありますか?私はS3のWebインターフェイスを使用してファイルをアップロードするとき、それは完全に正常に動作します。
私は本当にあなたの問題の解決策をあなたの「答え」を考えていません。 S3の は、 'keyName'は、スラッシュやバックスラッシュなどの特殊なプレフィックスを含むあなたの**オブジェクト名**、です。 AWS API Keyとは関係ありません。 – mootmoot