4
4
5
5
use GuzzleHttp \Client ;
6
6
use Illuminate \Support \Facades \Log ;
7
+ use Illuminate \Support \Facades \Storage ;
7
8
8
9
class Coding
9
10
{
@@ -41,7 +42,7 @@ public function createUploadToken($token, $projectName, $fileName)
41
42
'Content-Type ' => 'application/json '
42
43
],
43
44
'json ' => [
44
- 'Action ' => 'CreateWiki ' ,
45
+ 'Action ' => 'CreateUploadToken ' ,
45
46
'ProjectName ' => $ projectName ,
46
47
'FileName ' => $ fileName ,
47
48
],
@@ -52,17 +53,19 @@ public function createUploadToken($token, $projectName, $fileName)
52
53
$ uploadToken ['UploadLink ' ],
53
54
$ matches
54
55
);
55
- $ uploadToken ['Bucket ' ] = $ matches [1 ][0 ];
56
+ $ uploadToken ['Bucket ' ] = $ matches [1 ][0 ] . ' - ' . $ matches [ 2 ][ 0 ] ;
56
57
$ uploadToken ['AppId ' ] = $ matches [2 ][0 ];
57
58
$ uploadToken ['Region ' ] = $ matches [3 ][0 ];
58
59
return $ uploadToken ;
59
60
}
60
61
61
62
public function createMarkdownZip ($ markdown , $ path , $ filename ): bool |string
62
63
{
63
- $ zipFilename = tempnam (sys_get_temp_dir (), $ filename );
64
- if ($ this ->zipArchive ->open ($ zipFilename , \ZipArchive::OVERWRITE ) !== true ) {
65
- Log::error ("cannot open < $ zipFilename> " );
64
+ $ tmpFile = tempnam (sys_get_temp_dir (), $ filename );
65
+ $ zipFileFullPath = $ tmpFile . '.zip ' ;
66
+ rename ($ tmpFile , $ zipFileFullPath );
67
+ if ($ this ->zipArchive ->open ($ zipFileFullPath , \ZipArchive::OVERWRITE ) !== true ) {
68
+ Log::error ("cannot open < $ zipFileFullPath> " );
66
69
return false ;
67
70
}
68
71
$ this ->zipArchive ->addFromString ($ filename , $ markdown );
@@ -73,6 +76,18 @@ public function createMarkdownZip($markdown, $path, $filename): bool|string
73
76
}
74
77
}
75
78
$ this ->zipArchive ->close ();
76
- return $ zipFilename ;
79
+ return $ zipFileFullPath ;
80
+ }
81
+
82
+ public function upload (array $ uploadToken , string $ fileFullPath ): bool
83
+ {
84
+ config (['filesystems.disks.cos.credentials.appId ' => $ uploadToken ['AppId ' ]]);
85
+ config (['filesystems.disks.cos.credentials.secretId ' => $ uploadToken ['SecretId ' ]]);
86
+ config (['filesystems.disks.cos.credentials.secretKey ' => $ uploadToken ['SecretKey ' ]]);
87
+ config (['filesystems.disks.cos.credentials.token ' => $ uploadToken ['UpToken ' ]]);
88
+ config (['filesystems.disks.cos.region ' => $ uploadToken ['Region ' ]]);
89
+ config (['filesystems.disks.cos.bucket ' => $ uploadToken ['Bucket ' ]]);
90
+
91
+ return Storage::disk ('cos ' )->put (basename ($ fileFullPath ), $ fileFullPath );
77
92
}
78
93
}
0 commit comments