Uma usuguga futhi awusakhuli Angifuni ukugcina iseva eyodwa ngaphezulu ukuze isingathe amasayithi ambalwa namabhulogi afana nalena, iqaphe uma sivumela ukuthi sibethele isitifiketi esivuselelwe ngisho nakumasayithi amadala adlulelwe isikhathi nokunyeâÃÂæ okungenani lokhu kuyiqiniso mina :) Futhi nganquma ukuyihambisa endaweni ethile ephethwe ngokugcwele. Ekubukeni kokuqala isitoreji se-Google Cloud besiyisixazululo esanele, kodwa ngemuva kokudala ibhakede, nokuphonsa isifundo esiphelele ngiyaqonda ukuthi ukunika amandla ama-https ngeke kube lula (usebenzisa isilinganisi somthwalo nokunye) akushibhile (itâàÃÂs $0.025 ngemithetho yokuqala emi-5 ngehora =>$18 ngenyanga) Ngisanda kusebenzisa i-Google Cloud Run kuma-API ambalwa futhi ikhokhelwe nje isikhathi esisetshenzisiwe/CPU/RAM, kodwa uma iwebhusayithi ingasebenzi kakhulu ngisho ne-Free Tier yanele ukusingatha amanye amawebhusayithi ngokuphelele. Mahhala Ngemva kokufunda imibhalo kubukeka kulula kakhulu, awudingi ngisho nokuhlinzeka ngemininingwane mathupha ngaphakathi kwezimo zeziqukathi ze-Cloud Run (ephethwe ngokugcwele) uma usebenzisa imitapo yolwazi yeklayenti le-GCP! P.S.: uma nje ufuna kuwe ikhodi yokugcina ukuthi usebenzise isiqukathi sakho sicela uvakashele ku-github.com/kanocz/gclwebgcs Okokuqala sidinga ukulalela echwebeni elihlinzekwe ngu I-PORT env variable: http.ListenAndServe + os.Getenv(âÃÂÃÂPORT nil) Nge I-GCS env esizocacisa igama lebhakede le-Google Cloud Storage (kudingeka libe kuphrojekthi efanayo ctx : = context.Ingemuva() iklayenti, iphutha := storage.NewClient(ctx) ibhakede = client.Bucket(os.Getenv(âÃÂÃÂGCS Futhi into yokufunda ongayithumela: obj := ibhakede.Object(r.URL.Path[1 // strip firstobjAttrs, err := obj.Attrs(ctx) obj = obj.ReadCompressed(iqiniso) // we donâÃÂàAngifuni ukuyicisha futhi ngiyicindezele futhi ukuze idluliselwe // ukukopisha izihloko ze-w.HeaderSet(âÃÂâÃÂÃÂ, objAttrs.ContentType) w.HeaderSet(âÃÂÃÂContent-EncodingâÃÂÃÂ, objAttrs.ContentEncoding) w.HeaderSet(âÃÂàUbude-Okuqukethwe, strconv.Itoa(int(objAttrs.Size w.HeaderSet(âÃÂÃÂI-Content-Dispositionââ ÃÂ, objAttrs.ContentDisposition) w.HeaderSet(âÃÂÃÂCache-ControlâÃÃÂ, objAttrs.CacheControl) w.HeaderSet(ÃAderSet ¢ÃÂÃÂETagâÃÂÃÂ, objAttrs.Etag) // futhi uthumele isifundi sedatha, iphutha := obj.NewReader(ctx) io.Copy(w, umfundi) Ngempela ekunikezeni iwebhusayithi sidinga futhi inkomba yeseva, isibambo esingatholakali amaphutha nokunye, kodwa futhi akuyona inkimbinkimbi. Ungakhohlwa ukudala go.mod ukusiza i-Google Cloud Build :) Kunokuthunyelwa kubhalisi yesiqukathi nje i-gcloud builds send --tag gcr.io/project1/gclwebgcs (sicela ufake esikhundleni iphrojekthi1 enegama lephrojekthi yakho) futhi udale/ubuyekeze isevisi usebenzisa gcloud beta run deploy --image gcr.io/project1/gclwebgcs \ --platform ephethwe --set-env-vars=GCS=GCSbucketName serviceName Ungakhohlwa ukulayisha amafayela ku I-GCSbucketName kuphrojekthi efanayo futhi yabela igama lesizinda kusevisi entsha, isitifiketi se-ssl sizonikezwa futhi siphathwe ngokuzenzakalelayo! That's all :)