PHP oss 分片上传文件

这篇博客详细介绍了如何使用PHP实现阿里云OSS服务的文件分片上传操作,通过官方文档和SDK,开发者可以掌握具体的实现步骤。
摘要由CSDN通过智能技术生成
话不多说直接上代码

//分片上传视频
public static function fen_upload($par){
    self::par($par);
    require EXT.'oss/src/OSS/OssClient.php';
    $bucket = OSS_PREF.$par['bucket'];
    /**
     *  步骤1:初始化一个分片上传事件,获取uploadId。
     */
    $ossClient = new OssClient(self::$par['access_id'], self::$par['access_key'], self::$buckets[$par['bucket']].'.'.OSS_DOMAIN);
    //返回uploadId,它是分片上传事件的唯一标识,您可以根据这个ID来发起相关的操作,如取消分片上传、查询分片上传等。
    $uploadId = $ossClient->initiateMultipartUpload($bucket, self::$par['object']);
    /*
     * 步骤2:上传分片。
     */
    $partSize = 50 * 1024;
    $uploadFile = 'C:\Users\Administrator\Desktop\1590461894.mp4';
    $uploadFileSize = filesize($uploadFile);
    $pieces = $ossClient->generateMultiuploadParts($uploadFileSize, $partSize);
    $responseUploadPart = array();
    $uploadPosition = 0;
    $isCheckMd5 = true;
    foreac
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中进行OSS分片,可以通过以下步骤返回文件链接: 1. 创建OSSClient对象,连接到OSS服务。例如: ``` String endpoint = "<yourEndpoint>"; String accessKeyId = "<yourAccessKeyId>"; String accessKeySecret = "<yourAccessKeySecret>"; String bucketName = "<yourBucketName>"; OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); ``` 2. 初始化分片,并获取UploadId。例如: ``` InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(bucketName, key); InitiateMultipartUploadResult result = ossClient.initiateMultipartUpload(request); String uploadId = result.getUploadId(); ``` 3. 上分片。可以使用UploadPartRequest对象上每个分片,并记录每个分片的ETag和PartNumber。例如: ``` FileInputStream inputStream = new FileInputStream(file); long partSize = 5 * 1024 * 1024L; long fileLength = file.length(); int partCount = (int) (fileLength / partSize); if (fileLength % partSize != 0) { partCount++; } List<PartETag> partETags = new ArrayList<PartETag>(); for (int i = 0; i < partCount; i++) { long startPos = i * partSize; long curPartSize = (i + 1 == partCount) ? fileLength - startPos : partSize; inputStream.skip(startPos); UploadPartRequest uploadPartRequest = new UploadPartRequest(); uploadPartRequest.setBucketName(bucketName); uploadPartRequest.setKey(key); uploadPartRequest.setUploadId(uploadId); uploadPartRequest.setInputStream(inputStream); uploadPartRequest.setPartSize(curPartSize); uploadPartRequest.setPartNumber(i + 1); UploadPartResult uploadPartResult = ossClient.uploadPart(uploadPartRequest); partETags.add(uploadPartResult.getPartETag()); } ``` 4. 完成分片。可以使用CompleteMultipartUploadRequest对象完成分片,并获取文件链接。例如: ``` CompleteMultipartUploadRequest completeRequest = new CompleteMultipartUploadRequest(bucketName, key, uploadId, partETags); CompleteMultipartUploadResult completeResult = ossClient.completeMultipartUpload(completeRequest); String fileUrl = completeResult.getLocation(); ``` fileUrl即为上文件的链接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值