如何通过PutObject上传本地文件和二进制数组 您所在的位置:网站首页 阿里云文件传输 如何通过PutObject上传本地文件和二进制数组

如何通过PutObject上传本地文件和二进制数组

2023-12-08 14:48| 来源: 网络整理| 查看: 265

以下代码用于以同步方式上传examplefile.txt文件到目标存储空间examplebucket中exampledir目录下的exampleobject.txt文件。

// 构造上传请求。 // 依次填写Bucket名称(例如examplebucket)、Object完整路径(例如exampledir/exampleobject.txt)和本地文件完整路径(例如/storage/emulated/0/oss/examplefile.txt)。 // Object完整路径中不能包含Bucket名称。 PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", "/storage/emulated/0/oss/examplefile.txt"); // 设置文件元信息为可选操作。 ObjectMetadata metadata = new ObjectMetadata(); // metadata.setContentType("application/octet-stream"); // 设置content-type。 // metadata.setContentMD5(BinaryUtil.calculateBase64Md5(uploadFilePath)); // 校验MD5。 // 设置Object的访问权限为私有。 metadata.setHeader("x-oss-object-acl", "private"); // 设置Object的存储类型为标准存储。 metadata.setHeader("x-oss-storage-class", "Standard"); // 设置禁止覆盖同名Object。 // metadata.setHeader("x-oss-forbid-overwrite", "true"); // 指定Object的对象标签,可同时设置多个标签。 // metadata.setHeader("x-oss-tagging", "a:1"); // 指定OSS创建目标Object时使用的服务器端加密算法 。 // metadata.setHeader("x-oss-server-side-encryption", "AES256"); // 表示KMS托管的用户主密钥,该参数仅在x-oss-server-side-encryption为KMS时有效。 // metadata.setHeader("x-oss-server-side-encryption-key-id", "9468da86-3509-4f8d-a61e-6eab1eac****"); put.setMetadata(metadata); try { PutObjectResult putResult = oss.putObject(put); Log.d("PutObject", "UploadSuccess"); Log.d("ETag", putResult.getETag()); Log.d("RequestId", putResult.getRequestId()); } catch (ClientException e) { // 客户端异常,例如网络异常等。 e.printStackTrace(); } catch (ServiceException e) { // 服务端异常。 Log.e("RequestId", e.getRequestId()); Log.e("ErrorCode", e.getErrorCode()); Log.e("HostId", e.getHostId()); Log.e("RawMessage", e.getRawMessage()); }

对于Android10及以上版本的分区存储,您可以使用文件的Uri上传文件到OSS。

// 构造上传请求。 // 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。 // Object完整路径中不能包含Bucket名称。 PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt",fileUri); // 设置文件元信息。 // ObjectMetadata metadata = new ObjectMetadata(); // 设置Content-Type。 // metadata.setContentType("text/plain"); // 校验MD5。 // metadata.setContentMD5(BinaryUtil.calculateBase64Md5(uploadFilePath)); // put.setMetadata(metadata); try { PutObjectResult putResult = oss.putObject(put); Log.d("PutObject", "UploadSuccess"); Log.d("ETag", putResult.getETag()); Log.d("RequestId", putResult.getRequestId()); } catch (ClientException e) { // 客户端异常,例如网络异常等。 e.printStackTrace(); } catch (ServiceException e) { // 服务端异常。 Log.e("RequestId", e.getRequestId()); Log.e("ErrorCode", e.getErrorCode()); Log.e("HostId", e.getHostId()); Log.e("RawMessage", e.getRawMessage()); }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有