Dies ist ein Memo zum Hochladen und Herunterladen von Java nach S3. In einer Proxy-Umgebung tritt eine Zeitüberschreitung auf, wenn kein Proxy festgelegt ist. Davon abgesehen wurde es mit der offiziellen Probe gemacht.
Ich möchte die Details untersuchen und hinzufügen.
pom.xml
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.112</version>
</dependency>
java
static final String S3_ACCESS_KEY = "";
static final String S3_SECRET_KEY = "";
static final String S3_SERVICE_END_POINT = "";
static final String S3_REGION = "";
static final String S3_BUCKET_NAME = "";
java
//Authentifizierungsprozess
private static AmazonS3 auth(){
System.out.println("auth start");
//AWS-Anmeldeinformationen
AWSCredentials credentials = new BasicAWSCredentials(S3_ACCESS_KEY, S3_SECRET_KEY);
//Client-Einstellungen
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProxyHost("[proxyHost]");
clientConfig.setProxyPort([portNo]);
//Endpunkteinstellung
EndpointConfiguration endpointConfiguration = new EndpointConfiguration(S3_SERVICE_END_POINT, S3_REGION);
//Generieren Sie einen S3-Zugriffsclient
AmazonS3 client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials))
.withClientConfiguration(clientConfig)
.withEndpointConfiguration(endpointConfiguration).build();
System.out.println("auth end");
return client;
}
java
//Upload-Verarbeitung
private static void upload() throws Exception{
System.out.println("upload start");
//Authentifizierungsprozess
AmazonS3 client = auth();
File file = new File("[Dateipfad hochladen]");
FileInputStream fis = new FileInputStream(file);
ObjectMetadata om = new ObjectMetadata();
om.setContentLength(file.length());
final PutObjectRequest putRequest = new PutObjectRequest(S3_BUCKET_NAME, file.getName(), fis, om);
//Berechtigungseinstellungen
putRequest.setCannedAcl(CannedAccessControlList.PublicRead);
//hochladen
client.putObject(putRequest);
fis.close();
System.out.println("upload end");
}
java
//Download-Verarbeitung
private static void download() throws Exception{
System.out.println("download start");
//Authentifizierungsprozess
AmazonS3 client = auth();
final GetObjectRequest getRequest = new GetObjectRequest(S3_BUCKET_NAME, "[Dateiname herunterladen");
S3Object object = client.getObject(getRequest);
FileOutputStream fos = new FileOutputStream(new File("[Zielpfad ausgeben]"));
IOUtils.copy(object.getObjectContent(), fos);
fos.close();
System.out.println("download end");
}
Recommended Posts