code-push-server sae(新浪クラウド)のストレージの追加
3686 ワード
まずlisongのオープンソースコードに感謝します
https://github.com/lisong/code-push-server
もともと私もqiniuで保存していましたが、2018年10月、七牛からメールで通知が来て、テストドメイン名が回収されます
自分の登録済みドメイン名をバインドしない限り、涼しくなるしかありません.登録には時間がかかります.
新浪クラウドストレージの変更を決定
1、SDKのインストール
npm install scs-sdkの実行
2、二つのファイルを修正してgitを提出する
core/utils/common.js
ファイルの先頭にインポートを追加
関数の追加
関数の更新
config/config.js
config.developmentに構造を追加
3、環境変数の修正
4つの変数を追加
注意SAE_DOWNLOAD_URL
bucket名が:
https://sinacloud.net/
https://github.com/lisong/code-push-server
もともと私もqiniuで保存していましたが、2018年10月、七牛からメールで通知が来て、テストドメイン名が回収されます
自分の登録済みドメイン名をバインドしない限り、涼しくなるしかありません.登録には時間がかかります.
新浪クラウドストレージの変更を決定
1、SDKのインストール
npm install scs-sdkの実行
2、二つのファイルを修正してgitを提出する
core/utils/common.js
ファイルの先頭にインポートを追加
var sinaCloud = require('scs-sdk');//2018-11-26
関数の追加
common.uploadFileToSae = function (key, filePath) {
return (
new Promise((resolve, reject) => {
var saeconfig = new sinaCloud.Config({
accessKeyId: _.get(config, "sae.accessKeyId"),
secretAccessKey: _.get(config, "sae.secretKey"),
sslEnabled: false
});
// :
var saeBucket = new sinaCloud.S3();
saeBucket.config = saeconfig;
fs.readFile(filePath, (err, data) => {
var upSaeData = {
ACL: 'public-read',
Key: key,
Body: data,
Bucket: _.get(config, "sae.bucketName", "")
};
saeBucket.putObject(upSaeData, function(err, data) {
if (err) {
reject(new AppError.AppError(JSON.stringify(err)));
//console.log("Error uploading data: ", err);
} else {
//console.log("Successfully uploaded data to myBucket/myKey");
resolve(data)
}
});
});
})
);
};
関数の更新
common.getBlobDownloadUrl = function (blobUrl) {
var downloadUrl = '';
var fileName = blobUrl;
if (_.get(config, 'common.storageType') === 'local') {
downloadUrl = _.get(config, 'local.downloadUrl');
fileName = blobUrl.substr(0, 2).toLowerCase() + '/' + blobUrl;
} else if (_.get(config, 'common.storageType') === 's3') {
downloadUrl = _.get(config, 's3.downloadUrl');
} else if (_.get(config, 'common.storageType') === 'oss') {
downloadUrl = _.get(config, 'oss.downloadUrl');
} else if (_.get(config, 'common.storageType') === 'qiniu') {
downloadUrl = _.get(config, 'qiniu.downloadUrl');
} else if (_.get(config, 'common.storageType') === 'sae') {
downloadUrl = _.get(config, 'sae.downloadUrl');
}
return `${downloadUrl}/${fileName}`
};
common.uploadFileToStorage = function (key, filePath) {
if (_.get(config, 'common.storageType') === 'local') {
return common.uploadFileToLocal(key, filePath);
} else if (_.get(config, 'common.storageType') === 's3') {
return common.uploadFileToS3(key, filePath);
} else if (_.get(config, 'common.storageType') === 'oss') {
return common.uploadFileToOSS(key, filePath);
} else if (_.get(config, 'common.storageType') === 'sae') {
return common.uploadFileToSae(key, filePath);
}
return common.uploadFileToQiniu(key, filePath);
};
config/config.js
config.developmentに構造を追加
// Config for sae(sina) cloud storage when storageType value is "sae". 2018-11-26
sae: {
accessKeyId: process.env.SAE_ACCESS_KEY_ID || "",
secretKey: process.env.SAE_SECRET_KEY || "",
bucketName: process.env.SAE_BUCKET_NAME || "",
downloadUrl: process.env.SAE_DOWNLOAD_URL || "" // Binary files download host address.
},
3、環境変数の修正
4つの変数を追加
注意SAE_DOWNLOAD_URL
bucket名が:
my-bucket
の場合は、https://sinacloud.net/
my-bucket,