Appearance
Java上传文件至OSS
思核云OSS兼容Amazon S3,通过支持S3的SDK即可访问OSS。
使用OSS需要配置AccessKey,在思核云控制台点击头像→AccessKey管理→创建AccessKey,保存AccessKey。为了安全起见,您可以将这些凭据存储在您的环境变量中,或使用其他方式来管理这些凭据以防止它们被泄漏。
在使用OSS之前,需要在您的项目中安装AWS SDK for Java,例如Maven工程中,只需在pom.xml中加入相应依赖即可。在<dependencies>
中加入如下内容:
xml
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>2.21.20</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>2.21.20</version>
</dependency>
安装AWS SDK for Java后,就可以对OSS进行操作了,以下是Java8的样例代码。
java
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
import software.amazon.awssdk.services.s3.model.S3Exception;
import java.net.URI;
public class Demo {
public static void main(String[] args) {
// yourAccessKeyID填写AccessKey ID
String accessKeyID = "yourAccessKeyID";
// yourAccessKeySecret填写AccessKey Secret
String accessKeySecret = "yourAccessKeySecret";
// yourBucketName填写Bucket名称。
String bucketName = "yourBucketName";
String region = "jiaxing";
String endpoint = "https://oss-jiaxing.sihe.cloud";
String objectName = "sample.txt";
S3Client s3Client = S3Client.builder()
.endpointOverride(URI.create(endpoint))
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKeyID, accessKeySecret)))
.region(Region.of(region))
.build();
try {
PutObjectRequest putOb = PutObjectRequest.builder()
.bucket(bucketName)
.key(objectName)
.build();
s3Client.putObject(putOb, RequestBody.fromString("sample.text"));
System.out.println(String.format("Successfully uploaded to %s/%s, you can check it from https://%s.oss-jiaxing.sihe.cloud/%s.\n",
bucketName, objectName, bucketName, objectName));
} catch (S3Exception e) {
System.err.println(e.getMessage());
System.exit(1);
}
}
}
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
import software.amazon.awssdk.services.s3.model.S3Exception;
import java.net.URI;
public class Demo {
public static void main(String[] args) {
// yourAccessKeyID填写AccessKey ID
String accessKeyID = "yourAccessKeyID";
// yourAccessKeySecret填写AccessKey Secret
String accessKeySecret = "yourAccessKeySecret";
// yourBucketName填写Bucket名称。
String bucketName = "yourBucketName";
String region = "jiaxing";
String endpoint = "https://oss-jiaxing.sihe.cloud";
String objectName = "sample.txt";
S3Client s3Client = S3Client.builder()
.endpointOverride(URI.create(endpoint))
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKeyID, accessKeySecret)))
.region(Region.of(region))
.build();
try {
PutObjectRequest putOb = PutObjectRequest.builder()
.bucket(bucketName)
.key(objectName)
.build();
s3Client.putObject(putOb, RequestBody.fromString("sample.text"));
System.out.println(String.format("Successfully uploaded to %s/%s, you can check it from https://%s.oss-jiaxing.sihe.cloud/%s.\n",
bucketName, objectName, bucketName, objectName));
} catch (S3Exception e) {
System.err.println(e.getMessage());
System.exit(1);
}
}
}