Python2.7+php5.4结合对安卓apk包进行分包处理-2

该PHP代码实现了一个用于安卓apk包的分包和上传到阿里云OSS的功能。首先,创建子包目录并处理分包,接着根据渠道ID创建渠道包,然后对包进行签名,最后将分包文件上传到阿里云OSS。此外,还包含了删除旧文件、检查OSS文件是否存在以及文件操作的相关逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###PHP段

#PHP端主要是处理分包和上传OSS阿里云

 

<?php
namespace Org\Util;
require('./Expand/cos/include.php');
use Qcloud_cos\Auth;
use Qcloud_cos\Cosapi;
use OSS\Core\OssException;
class AppSubpackage
{

    private $info = null;

    private $gameInfo;

    private $sourFile;

    private $subpackagePath;

    private $chID;

    private $chName;

    private $appLocationAddress;

    public function __construct($gameID, $chID = null)
    {
        $this->chID = $chID;
        //根据GID查询AppProvider表的信息
        $appProviderResult=M('AppProvider',Null,'DB_CONFIG2')->field("id,app_name,app_name_cn,gid,main_package_ver,main_package_old_ver,main_package,mark_banben")->where("gid='".$gameID."'")->find();
        // 拿到主包的所有的信息
        
        if (! empty($appProviderResult)) {
            $this->gameInfo = $appProviderResult;
            $this->sourFile = $appProviderResult['main_package'];
        } else {
            die('严重错误,游戏信息拉取失败');
        }
    }

    public function empty_is(){

    }

     // 改版后的分包
    public function create_apk(){

        //创建目录
        $this->createFolder();
        $coreChannelOne=M('CoreChannelOneInfo',Null,'DB_CONFIG3')->where("ch_id='".$this->chID."'")->find();
        if(empty($coreChannelOne)){
            $coreChannelTwo =M('CoreChannelTwoInfo',Null,'DB_CONFIG3')->where("ch2_id='".$this->chID."'")->find();
        }

        //赋值渠道名称
        if (!empty($coreChannelOne)) {
            $this->chName = $coreChannelOne['ch_uname'];
        }else if(!empty($coreChannelTwo)){
            $this->chName = $coreChannelTwo['ch2_uname'];
        }

        $AppSubpackageWhere['gid']=$this->gameInfo['gid'];
        $AppSubpackageWhere['chid']=$this->chID;
        $appSubpackage=M('AppSubpackage',Null,'DB_CONFIG3')->where($AppSubpackageWhere)->find();
        
        // 如果为null。那就是第一次生成
        if(empty($appSubpackage)){
            $Subpackage=$this->create_apks($this->chID);
            if(!empty($Subpackage)){

                //上传OSS阿里云
                $cos_url=$this->AliUpdate1($Subpackage,$this->chID);
                if(!empty($cos_url)){
                    @unlink($Subpackage);
                }else{
                    return "没有oss地址";
                }
                // if($isset_apk_file==true){
                $appSubpackageData=array();
                $appSubpackageData['app_name'] = $this->gameInfo['app_name'];
                $appSubpackageData['app_name_cn'] = $this->gameInfo['app_name_cn'];
                $appSubpackageData['gid']= $this->gameInfo['gid'];
                $appSubpackageData['subpackage_ver'] = $this->gameInfo['main_package_ver'];
                $appSubpackageData['subpackage_old_ver'] = $this->gameInfo['main_package_old_ver'];
                $appSubpackageData['chid']= $this->chID;
                $appSubpackageData['subpackage'] ="";
                $appSubpackageData['cos_url']=$cos_url;
                $appSubpackageData['create_time'] = time();
                $appSubpackageData['cos_flag'] = 'no';
                $appSubpackageData['up_flag'] = 3;
                $result=M('AppSubpackage',Null,'DB_CONFIG3')->data($appSubpackageData)->add();
                if($result>0){
                    return $cos_url;
                }else{
                    return "修改失败";
                }
                
            }
            
        }else{
            $wheres['id']=$appSubpackage['id'];
          
            $Subpackage=$this->create_apks($this->chID);
            if(!empty($Subpackage)){

                //上传OSS阿里云
                $cos_url=$this->AliUpdate1($Subpackage,$this->chID,$appSubpackageResult['cos_url']);
                // $isset_apk_file="";
                // $isset_apk_file=$this->isset_ossapk($cos_url);
                
                if(!empty($cos_url)){
                    @unlink($Subpackage);
                }else{
                    return "没有oss地址";
                }
                // if($isset_apk_file==true){
                $appSubpackageData=array();
                $appSubpackageData['app_name'] = $this->gameInfo['app_name'];
                $appSubpackageData['app_name_cn'] = $this->gameInfo['app_name_cn'];
                $appSubpackageData['gid']= $this->gameInfo['gid'];
                $appSubpackageData['subpackage_ver'] = $this->gameInfo['main_package_ver'];
                $appSubpackageData['subpackage_old_ver'] = $this->gameInfo['main_package_old_ver'];
                $appSubpackageData['chid']= $this->chID;
                $appSubpackageData['subpackage'] ="";
                $appSubpackageData['cos_url']=$cos_url;
                $appSubpackageData['create_time'] = time();
                $appSubpackageData['cos_flag'] = 'no';
                $appSubpackageData['up_flag'] = 3;
                $result=M('AppSubpackage',Null,'DB_CONFIG3')->where($wheres)->data($appSubpackageData)->save();
                if($result>0){
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值