合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
您可以通过云存储SDK快速上传本地设备上的文件到云端。
如果未规划云端地址,则传入的文件将上传到存储实例根目录,且默认使用源文件名作为云端文件名。
- public class StorageUpload {
- private static StorageManagement storageManagement;
-
- /**
- * Upload a file
- *
- * @throws AGCException AGC exception
- */
- public static void uploadFile(String bucketName, String filePath, String objectName) throws AGCException {
- File file = new File(filePath);
- storageManagement = AGCStorageManagement.getInstance(AGCClient.getInstance(), "cn-north-4", bucketName);
- StorageReference storageReference = storageManagement.getStorageReference();
- String[] result = {""};
- ProgressListener listener = new ProgressListener() {
- @Override
- public void inProgress(ProgressStatus status) {
- result[0] = "upload transferred/total:" + status.getTransferredBytes() + "/" + status.getTotalBytes()
- + "," + status.getTransferPercentage() + "%, " + "instaneos speed: "
- + status.getInstantaneousSpeed() + ", avg speed: " + status.getAverageSpeed();
- }
- };
- ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
- service.scheduleAtFixedRate(() -> System.out.println(result[0]), 2, 3, TimeUnit.SECONDS);
-
- PutObjectRequest putObjectRequest = new PutObjectRequest();
- putObjectRequest.setObjectMetadata(null);
- putObjectRequest.setObjectName(objectName);
- putObjectRequest.setUploadFile(file);
- putObjectRequest.setProgressListener(listener);
- // 调用StorageReference.putObject将文件上传到云端
- storageReference.putObject(putObjectRequest);
- System.out.println(objectName + " upload succeeded " + storageReference.doesObjectExist(objectName));
- service.shutdownNow();
- }
- public static void initializeClient(String content) throws AGCException {
- CredentialService credential =
- CredentialParser.toCredentialWithContents(content);
- AGCParameter agcParameter = AGCParameter.builder().setCredential(credential).build();
- AGCClient.initialize(agcParameter);
- System.out.println("init agcParameter Success.");
- }
- public static void main(String[] args) throws AGCException {
- // 存储实例名
- String bucketName = "xxxx";
- // 设置云端的文件地址和需要存储到云端的本地文件
- // 云端文件路径,支持传入“文件目录/文件名”,或仅传入文件名
- String objectName = "images/demo.jpg";
- // 本地文件路径,支持传入“文件目录/文件名”,或仅传入文件名
- String filePath = "images/test.jpg";
- // 凭据信息,json格式
- String credential = "{\"type\":\"project_client_id\",\"developer_id\":\"xxx\",\"project_id\":\"xxx\",\"client_id\":\"xxx\",\"client_secret\":\"xxx\",\"configuration_version\":\"3.0\",\"region\":\"CN\"}";
-
- StorageUpload.initializeClient(credential);
-
- StorageUpload.uploadFile(bucketName, filePath,objectName);
- }
- }
在如上示例代码中,AGC云端实际上只存储了一个对象images/demo.jpg,仅提供了一个按斜杠分隔符来进行对象管理的功能。
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功