趕在關(guān)閉前,Parse Server Migration總結(jié)

2015年開始使用Parse Server,用作自己開發(fā)的iOS應(yīng)用的后臺,可是剛開發(fā)了兩個APP,Parse Server就宣布停止服務(wù)了,截止日期是2017年1月28日。

隨著這個日子越來越逼近,自己也一直在糾結(jié)怎么處理這兩個應(yīng)用。停止服務(wù)?遷移到LeanCloud?還是自己搭建Parse Server來維護(hù)?

中間糾結(jié)過也探索過,尤其想遷移到LeanCloud,因?yàn)樽约簩Ψ?wù)器端開發(fā)的了解幾乎等于零。但隨著LeanCloud收費(fèi)的改變,和遷移到LeanCloud時遇到的種種坑。最終決定自己來搭建Parse Server,順帶也學(xué)習(xí)一點(diǎn)服務(wù)器端開發(fā)相關(guān)的知識吧。

首先是云服務(wù)器和域名的購買,現(xiàn)在產(chǎn)品非常多,國外的AWS,微軟等,國內(nèi)有阿里云,百度云,騰訊云等等。在拿到騰訊云的7天試用之后,覺得基本滿意,所以就繼續(xù)用騰訊云了,順帶注冊了域名。整個過程非常簡單,不像以前那么麻煩了。

開始遷移
Parse官方給出的遷移步驟:Migrating an Existing Parse App
Parse官方的Github:parse-server

個人感覺遷移的內(nèi)容寫的比較粗略,而且東西比較散亂,可能是我對服務(wù)器開發(fā)不熟悉的緣故吧。

最終指引我安裝的主要是下面幾篇文章,都不是官方的。(殘念)
How To Run Parse Server On Ubuntu 14.04
How To Migrate a Parse App to Parse Server on Ubuntu 14.04

通過上面的兩篇,基本搞定了Parse Server最基本的配置,啟動和運(yùn)行,同時把我在Parse.com的其中一個應(yīng)用的數(shù)據(jù)遷移到了自己的服務(wù)器。

然后配置DashBoard
How to setup parse-dashboard alongside parse-server on Digital Ocean

如果你搞定了這一步,那么恭喜你,基本上70%的工作都完成了。

剩下的問題:
第一個問題就是圖片問題,遷移的時候并沒有把圖片文件遷移過來,所以一旦Parse.com服務(wù)中斷,所有的圖片就無法訪問了。因此還需要把圖片遷移到自己的服務(wù)器中。

所以需要做的事是:

  1. 在自己的服務(wù)器中,為Parse Server配置File Server Adapter
    看這邊的介紹 [parse-server-fs-adapter] (https://github.com/parse-server-modules/parse-server-fs-adapter)

  2. parse-files-utils這個工具把圖片文件從Parse.com下載下來,并放置到上面配置的那個文件目錄中去。

Push問題:
Push Overview
Push Configuring Clients
Push相對來說比較簡單了,服務(wù)器端配置下.p12文件,修改下客戶端就可以了。

最后給出我的index.js文件供大家參考

// Packtor Server
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var ParseDashboard = require('parse-dashboard');
var path = require('path');
var FSFilesAdapter = require('parse-server-fs-adapter');

var fsAdapter = new FSFilesAdapter({
      "filesSubDirectory": "learnpaint/files"
    });

var databaseUri = process.env.DATABASE_URI || 'mongodb://dbuser:password@your_domain:27017/your_dbname?ssl=true';

if (!databaseUri) {
  console.log('DATABASE_URI not specified, falling back to localhost.');
}

// Set up parse server
var api = new ParseServer({
  databaseURI: databaseUri,
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'your_app_id',
  masterKey: process.env.MASTER_KEY || 'your_app_master_key',
  serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse',
  publicServerURL: 'https://your_domain/parse',
  filesAdapter: fsAdapter,
  push: {
    ios: [
      {
        pfx: '/home/parse/files/xxxxxxx.p12', // The filename of private key and certificate in PFX or PKCS12 f$
        passphrase: '', // optional password to your p12
        bundleId: 'your_boundle_id', // The bundle identifier associate with your app
        production: false // Specifies which environment to connect to: Production (if true) or Sandbox
      },
      {
        pfx: '/home/parse/files/xxxxxxx.p12', // The filename of private key and certificate in PFX or PKCS12 fo$
        passphrase: '', // optional password to your p12
        bundleId: 'your_boundle_id', // The bundle identifier associate with your app
        production: true // Specifies which environment to connect to: Production (if true) or Sandbox
      }
    ]
  }
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,692評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • 作者:AppCoda,原文鏈接,原文日期:2016-04-16譯者:Crystal Sun;校對:numbbbbb...
    梁杰_numbbbbb閱讀 585評論 0 1
  • 可變變量是php獨(dú)有的
    43e03964ffe2閱讀 170評論 0 0
  • 大家好,本人是一枚即將畢業(yè)的大四,當(dāng)然也是一枚單身旺旺?? 很榮幸今天由我來為你們分享我的故事 大家好,我...
    緣是你的俊閱讀 242評論 0 0

友情鏈接更多精彩內(nèi)容