ਜਦੋਂ ਤੁਸੀਂ ਬੁੱਢੇ ਅਤੇ ਵੱਡੇ ਹੋ ਜਾਂਦੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਨਹੀਂ ਕਰਦੇ ਇਸ ਵਰਗੀਆਂ ਕੁਝ ਸਾਈਟਾਂ ਅਤੇ ਬਲੌਗਾਂ ਦੀ ਮੇਜ਼ਬਾਨੀ ਕਰਨ ਲਈ ਇੱਕ ਸਰਵਰ ਨੂੰ ਹੋਰ ਬਰਕਰਾਰ ਨਹੀਂ ਰੱਖਣਾ ਚਾਹੁੰਦੇ, ਨਿਗਰਾਨੀ ਕਰੋ ਕਿ ਕੀ ਪੁਰਾਣੀਆਂ ਪੁਰਾਣੀਆਂ ਸਾਈਟਾਂ 'ਤੇ ਵੀ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨੂੰ ਐਨਕ੍ਰਿਪਟ ਕਰਨ ਦਿੰਦਾ ਹੈ ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਘੱਟੋ-ਘੱਟ ਇਹ ਇਸ ਲਈ ਸੱਚ ਹੈ। ਮੈਨੂੰ :) ਅਤੇ ਮੈਂ ਇਸਨੂੰ ਕਿਸੇ ਪੂਰੇ-ਪ੍ਰਬੰਧਿਤ ਪਲੇਟਫਾਰਮ 'ਤੇ ਲਿਜਾਣ ਦਾ ਫੈਸਲਾ ਕੀਤਾ। ਪਹਿਲੀ ਨਜ਼ਰ ਲਈ ਗੂਗਲ ਕਲਾਉਡ ਸਟੋਰੇਜ ਕਾਫ਼ੀ ਵਧੀਆ ਹੱਲ ਸੀ, ਪਰ ਬਾਲਟੀ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ, ਅਤੇ ਪੂਰੇ ਟਿਊਟੋਰਿਅਲ ਨੂੰ ਸੁੱਟਣ ਤੋਂ ਬਾਅਦ ਮੈਂ ਸਮਝਦਾ ਹਾਂ ਕਿ https ਨੂੰ ਸਮਰੱਥ ਕਰਨਾ ਨਾ ਤਾਂ ਆਸਾਨ ਹੋਵੇਗਾ (ਲੋਡ ਬੈਲੇਂਸਰ ਅਤੇ ਹੋਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ) ਨਾ ਹੀ ਸਸਤਾ (itâÃÂ) $0.025 ਪ੍ਰਤੀ ਪਹਿਲੇ 5 ਨਿਯਮ ਪ੍ਰਤੀ ਘੰਟਾ =>$18 ਪ੍ਰਤੀ ਮਹੀਨਾ) ਸਿਰਫ਼ ਕੁਝ APIs ਲਈ Google ਕਲਾਊਡ ਰਨ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ ਅਤੇ ਇਹ ਸਿਰਫ਼ ਵਰਤੇ ਗਏ ਸਮੇਂ/CPU/RAM ਲਈ ਭੁਗਤਾਨ ਕੀਤਾ ਗਿਆ ਹੈ, ਪਰ ਬਹੁਤੀ ਸਰਗਰਮ ਵੈੱਬਸਾਈਟ ਨਾ ਹੋਣ ਦੀ ਸਥਿਤੀ ਵਿੱਚ ਵੀ ਮੁਫ਼ਤ ਟੀਅਰ ਕੁਝ ਵੈੱਬਸਾਈਟਾਂ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਹੋਸਟ ਕਰਨ ਲਈ ਕਾਫ਼ੀ ਹੈ। ਮੁਫਤ ਵਿੱਚ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਪੜ੍ਹਨ ਤੋਂ ਬਾਅਦ ਇਹ ਬਹੁਤ ਹੀ ਸਧਾਰਨ ਜਾਪਦਾ ਹੈ, ਤੁਹਾਨੂੰ GCP ਕਲਾਇੰਟ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਕਲਾਉਡ ਰਨ (ਪੂਰੀ ਤਰ੍ਹਾਂ ਪ੍ਰਬੰਧਿਤ) ਕੰਟੇਨਰ ਉਦਾਹਰਨਾਂ ਦੇ ਅੰਦਰ ਦਸਤੀ ਪ੍ਰਮਾਣ ਪੱਤਰ ਪ੍ਰਦਾਨ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ! P.S.: ਜੇਕਰ ਤੁਸੀਂ ਸਿਰਫ਼ ਆਪਣੇ ਕੰਟੇਨਰ ਨੂੰ ਤੈਨਾਤ ਕਰਨ ਲਈ ਅੰਤਿਮ ਕੋਡ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ github.com/kanocz/gclwebgcs 'ਤੇ ਜਾਓ ਪਹਿਲਾਂ ਸਾਨੂੰ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਪੋਰਟ 'ਤੇ ਸੁਣਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ PORT env ਵੇਰੀਏਬਲ: http.ListenAndServe + os.Getenv(âÃÂÃÂPORT nil) ਰਾਹੀਂ GCS env ਅਸੀਂ Google ਕਲਾਉਡ ਸਟੋਰੇਜ ਬਕੇਟ ਨਾਮ ਨਿਰਧਾਰਤ ਕਰਾਂਗੇ (ਉਸੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਹੋਣ ਦੀ ਲੋੜ ਹੈ ctx : = context.Background() ਕਲਾਇੰਟ, err := ਸਟੋਰੇਜ਼।ਨਿਊ ਕਲਾਈਂਟ(ctx) ਬਾਲਟੀ = client।Bucket(os.Getenv(âÃÂÃÂGCS ਅਤੇ ਭੇਜਣ ਲਈ ਵਸਤੂ ਪੜ੍ਹਨ: obj := bucket.Object(r.URL.Path[1 // strip firstobjAttrs, err := obj.Attrs(ctx) obj = obj.ReadCompressed(true) // ਅਸੀਂ donâÃÂà // ਹੈਡਰਸੈੱਟ (âÃÂÃÂContent-TypeâÃÂÃÂ, objAttrs.ContentType)// ਹੈਡਰ ਕਾਪੀ ਕਰਨ ਲਈ ਇਸਨੂੰ ਦੁਬਾਰਾ ਡੀਕੰਪ੍ਰੈਸ ਅਤੇ ਸੰਕੁਚਿਤ ਨਹੀਂ ਕਰਨਾ ਚਾਹੁੰਦੇ। w.HeaderSet(âÃÂÃÂContent-EncodingÃÂÂÃÂ, objAttrs.ContentEncoding) w.HeaderSet(âÃÂàਸਮੱਗਰੀ-ਲੰਬਾਈ, strconv.Itoa(int(objAttrs.Size w.HeaderSet ÃÂ, objAttrs.ContentDisposition) w.HeaderSet(âÃÂÃÂCache-ControlâÃÂÃÂ, objAttrs.CacheControl) w.HeaderSet ¢ÃÂÃÂETagâÃÂÃÂ, objAttrs.Etag) // ਅਤੇ ਡਾਟਾ ਰੀਡਰ ਭੇਜੋ, err := obj.NewReader(ctx) io.Copy(w, ਪਾਠਕ) ਅਸਲ ਵਿੱਚ ਵੈਬਸਾਈਟ ਦੀ ਸੇਵਾ ਕਰਨ ਲਈ ਸਾਨੂੰ ਸਰਵਰ ਸੂਚਕਾਂਕ ਦੀ ਵੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਨਾ ਲੱਭੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣਾ ਆਦਿ, ਪਰ ਇਹ ਇੰਨਾ ਗੁੰਝਲਦਾਰ ਵੀ ਨਹੀਂ ਹੈ। ਬਣਾਉਣਾ ਨਾ ਭੁੱਲੋ Google ਕਲਾਊਡ ਬਿਲਡ ਵਿੱਚ ਮਦਦ ਕਰਨ ਲਈ go.mod :) ਇਸ ਨੂੰ ਹੁਣੇ ਹੀ ਕੰਟੇਨਰ ਰਜਿਸਟਰੀ ਕਰਨ ਲਈ ਤੈਨਾਤੀ ਵੱਧ gcloud ਬਿਲਡ ਸਬਮਿਟ --tag gcr.io/project1/gclwebgcs (ਕਿਰਪਾ ਕਰਕੇ ਬਦਲੋ ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਨਾਲ ਪ੍ਰੋਜੈਕਟ1) ਅਤੇ ਵਰਤ ਕੇ ਸੇਵਾ ਬਣਾਓ/ਅੱਪਡੇਟ ਕਰੋ gcloud ਬੀਟਾ ਰਨ ਤੈਨਾਤ --image gcr.io/project1/gclwebgcs \ --platform ਪ੍ਰਬੰਧਿਤ --set-env-vars=GCS=GCSbucketName serviceName 'ਤੇ ਫਾਈਲਾਂ ਨੂੰ ਅੱਪਲੋਡ ਕਰਨਾ ਨਾ ਭੁੱਲੋ ਉਸੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ GCSbucketName ਅਤੇ ਨਵੀਂ ਸੇਵਾ ਲਈ ਡੋਮੇਨ ਨਾਮ ਨਿਰਧਾਰਤ ਕਰੋ, ssl ਸਰਟੀਫਿਕੇਟ ਪ੍ਰਦਾਨ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ ਆਪਣੇ ਆਪ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾਵੇਗਾ! ਇਹ ਸਭ ਕੁਝ ਹੈ :)