返回
阿里云OSS文件上传工具构建之旅(第一部分)
后端
2023-10-30 16:32:16
导语:文件上传自动化之路
在日常工作中,我们经常需要将文件上传到云存储平台,例如阿里云OSS(Object Storage Service)。传统的手动上传方式效率低下,且容易出错。因此,开发一个自动化文件上传工具势在必行。
第一章:环境搭建与服务配置
-
环境搭建
- 安装Java或Python开发环境。
- 安装阿里云SDK。
-
服务配置
- 注册阿里云账号并创建OSS存储桶。
- 获取Access Key ID和Access Key Secret。
第二章:Java代码实现
-
初始化OSS客户端
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
-
上传文件
ossClient.putObject(bucketName, objectName, localFilePath);
-
获取文件上传进度
TransferManager transferManager = new TransferManager(ossClient); PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, localFilePath); TransferProgressCallback callback = new TransferProgressCallback() { @Override public void progressChanged(PutObjectRequest request, long bytesWritten, long totalBytes) { // 打印上传进度 System.out.println("上传进度:" + bytesWritten * 100.0 / totalBytes + "%"); } }; transferManager.upload(putObjectRequest, callback);
第三章:Python代码实现
-
初始化OSS客户端
from aliyunsdkcore.client import AcsClient from aliyunsdksts.request.v20150401 import AssumeRoleRequest from aliyunsdkoss.oss_api import OssClient client = AcsClient(accessKeyId, accessKeySecret, 'cn-hangzhou') request = AssumeRoleRequest() request.set_accept_format('json') request.set_role_arn(role_arn) request.set_role_session_name('session-name') response = client.do_action_with_exception(request) accessKeyId = response.get('Credentials').get('AccessKeyId') accessKeySecret = response.get('Credentials').get('AccessKeySecret') securityToken = response.get('Credentials').get('SecurityToken') ossClient = OssClient(accessKeyId, accessKeySecret, securityToken, endpoint)
-
上传文件
ossClient.put_object_from_file(bucketName, objectName, localFilePath)
-
获取文件上传进度
from aliyunsdkoss.common.exceptions import ClientError def progress_callback(bytes_written, total_bytes): # 打印上传进度 print('上传进度:', bytes_written * 100.0 / total_bytes, '%') try: ossClient.upload_file(bucketName, objectName, localFilePath, progress_callback=progress_callback) except ClientError as e: print('上传文件失败', e)
第四章:命令行工具
-
安装工具
pip install aliyun-oss-uploader
-
使用工具上传文件
aliyun-oss-uploader upload -b bucketName -f localFilePath -k accessKeyId -s accessKeySecret -e endpoint
结语
通过本文,我们构建了一个文件上传工具,实现了文件上传的自动化。在后续的文章中,我们将继续完善工具的功能,使其更加强大和易用。
致谢
感谢阿里云提供的OSS服务和SDK,使我们能够快速构建文件上传工具。