当前位置: 首页 > news >正文

网站模板哪个好用seo技术网站建设

网站模板哪个好用,seo技术网站建设,微信制作网站设计,网站实名认证功能怎么做在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中#xff0c;我快速介绍了Kubernetes中分布式存储Rook-Ceph的部署过程#xff0c;这里介绍如何在部署于Kubernetes的ASP.NET Core MVC的应用程序中使用Rook-Ceph所创建的存储对象。构建ASP.NET Core MVC (.NET 5)应用… 在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中我快速介绍了Kubernetes中分布式存储Rook-Ceph的部署过程这里介绍如何在部署于Kubernetes的ASP.NET Core MVC的应用程序中使用Rook-Ceph所创建的存储对象。构建ASP.NET Core MVC (.NET 5)应用程序这个程序的基本功能就是用户可以通过主页上传一个文件并保存到由Rook-Ceph创建的S3对象存储同时将文件信息和上传时间保存为一个MongoDB的文档。MongoDB使用Rook-Ceph创建的块存储Block Storage。首先新建一个基于.NET 5的ASP.NET Core MVC应用程序添加AWSSDK.S3和MongoDB.Driver这两个NuGet Package的引用。然后修改Startup.cs的ConfigureServices方法public void ConfigureServices(IServiceCollection services) {services.AddControllersWithViews();services.ConfigureFormOptions(options {options.MultipartBodyLengthLimit 268435456;});var s3Endpoint Configuration[s3:endpoint];var s3AccessKey Configuration[s3:accessKey];var s3SecretKey Configuration[s3:secretKey];var s3Configuration new AmazonS3Config{RegionEndpoint RegionEndpoint.USEast1,ServiceURL s3Endpoint,ForcePathStyle true};services.AddTransientIAmazonS3(sp new AmazonS3Client(s3AccessKey, s3SecretKey, s3Configuration));var mongoConnectionString Configuration[mongo:connectionString];var mongoDatabase Configuration[mongo:database];services.AddTransientIDataAccessObject(sp new MongoDataAccessObject(new MongoUrl(mongoConnectionString), mongoDatabase)); } 这里用到了配置信息为了调试方便可以修改appsettings.json文件添加对于S3和MongoDB的配置信息{Logging: {LogLevel: {Default: Information,Microsoft: Warning,Microsoft.Hosting.Lifetime: Information}},s3: {endpoint: http://localhost:9000,accessKey: AKIAIOSFODNN7EXAMPLE,secretKey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY},mongo: {connectionString: mongodb://localhost:27017,database: form-file-upload},AllowedHosts: * } 之后修改Index.cshtml文件将界面元素准备好{ViewData[Title] Home Page; } model FileUploadModeldiv classtext-centerh1 classdisplay-4Welcome/h1pLearn about a hrefhttps://docs.microsoft.com/aspnet/corebuilding Web apps with ASP.NET Core/a./pform methodpost enctypemultipart/form-data asp-controllerHome asp-actionIndexdiv classform-groupdiv classcol-md-10pUpload one or more files using this form:/pinput typefile namefile //div/divdiv classform-groupdiv classcol-md-10input typesubmit valueSave //div/div/form /div 修改HomeControllerpublic class HomeController : Controller {private readonly ILoggerHomeController _logger;private readonly IDataAccessObject _dao;private readonly IAmazonS3 _s3;public HomeController(ILoggerHomeController logger, IAmazonS3 s3, IDataAccessObject dao) (_logger, _s3, _dao) (logger, s3, dao);public IActionResult Index(){return View();}[HttpPost][ValidateAntiForgeryToken]public async TaskIActionResult Index(FileUploadModel model){if (model.File ! null){var fileName Path.GetFileName(model.File.FileName);var fileTransUtility new TransferUtility(_s3);using var stream model.File.OpenReadStream();await fileTransUtility.UploadAsync(stream, data, $FormFileUpload/{fileName});await _dao.AddAsyncSavedFile(new SavedFile{Timestamp DateTime.UtcNow,FileName fileName});return View();}else{}return View();}public IActionResult Privacy(){return View();}[ResponseCache(Duration 0, Location ResponseCacheLocation.None, NoStore true)]public IActionResult Error(){return View(new ErrorViewModel { RequestId Activity.Current?.Id ?? HttpContext.TraceIdentifier });} } 其它相关代码这里就不全部贴出来了可以直接参考本案例的源代码。在开发模式下我使用运行于Docker的MongoDB以及MINIO分别作为数据库后端和S3服务后端。在按下F5进行Debug之前请先确保MongoDB和MINIO已经运行。可以参考https://github.com/daxnet/form-file-upload/blob/main/docker-compose.yml。生成用于部署应用程序的HELM Chart仍然使用上面提到的docker-compose.yml文件然后使用下面的命令来生成HELM Chart:kompose convert -f docker-compose.yml -c -o k8s 执行成功后会在k8s的目录下产生用于部署到Kubernetes的HELM Chart。完整内容可以参考https://github.com/daxnet/form-file-upload/tree/main/k8s需要注意几个内容使用Ceph Object Store (S3)要使用Ceph Object Store只需要正确配置app中S3的Access Key、Secret Key以及Endpoint即可。对应的就是form-file-upload-service-deployment.yaml中的s3__accessKey、s3__endpoint和s3__secretKey环境变量设置。它们的取值在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中已经介绍过了只是在Endpoint的Host名称上需要加上http://。详细可以参考values.yaml文件。使用Ceph Block Storage部署到Kubernetes的MongoDB会需要使用Ceph Block Storage。在mongodb-deployment.yaml中会指定容器的volumeMountvolumeMounts: - mountPath: /data/dbname: mongo-data 然后在Volume的定义部分指定使用名为{{ .Release.Name }}-form-file-upload-mongo-data的PersistentVolumeClaimvolumes: - name: mongo-datapersistentVolumeClaim:claimName: {{ .Release.Name }}-form-file-upload-mongo-data 这里的{{ .Release.Name }}表示HELM的release的名字。接下来在这个PersistentVolumeClaim中mongo-data-persistentvolumeclaim.yaml可以指定所需使用的StorageClassspec:accessModes:- ReadWriteOnceresources:requests:storage: 20GistorageClassName: {{ .Values.mongoStorageClassName }} 在这里storageClassName在values.yaml中设置mongoStorageClassName: rook-ceph-block 而rook-ceph-block就是我们在前文中创建的Block Storage的名字。部署并运行程序使用git将https://github.com/daxnet/form-file-upload.git克隆到本地进入k8s目录然后helm install ffu . 安装成功后查看pods$ kubectl get po NAME READY STATUS RESTARTS AGE dnsutils 1/1 Running 2 160m ffu-form-file-upload-mongo-8c46f48fc-vm76k 1/1 Running 0 23m ffu-form-file-upload-service-7c5c679b96-rxl5s 1/1 Running 0 23m 查看PersistentVolumeClaims$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE ffu-form-file-upload-mongo-data Bound pvc-8e681be4-4378-11eb-8a9b-0ac973bf1e37 20Gi RWO rook-ceph-block 64m 可以看到ffu-form-file-upload-mongo-data这个PVC使用的StorageClass就是rook-ceph-block。查看Services$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ffu-form-file-upload-mongo ClusterIP 10.43.83.79 none 27017/TCP 65m ffu-form-file-upload-service ClusterIP 10.43.57.233 none 8080/TCP 65m kubernetes ClusterIP 10.43.0.1 none 443/TCP 3d10h 通过port-forward来访问应用程序$ kubectl port-forward svc/ffu-form-file-upload-service 8081:8080 Forwarding from 127.0.0.1:8081 - 80 Forwarding from [::1]:8081 - 80 打开浏览器访问http://localhost:8081点击Choose File按钮选择一个文件测试方便尽量选择小一点的文件点击Save。成功后没有任何信息提示会返回到没有上传文件时的状态。验证结果使用下面的命令查看S3中已经保存的文件$ kubectl exec -it -n rook-ceph deploy/rook-ceph-tools -- s3cmd ls s3://data/FormFileUpload/ 2020-12-21 11:47 1260 s3://data/FormFileUpload/abc.sldimport 可以看到文件已经成功上传到S3。使用下面的命令查看MongoDB中的数据$ kubectl exec -it deploy/ffu-form-file-upload-mongo -- mongo --eval db.SavedFile.find().pretty() form-file-upload MongoDB shell version v3.6.21 connecting to: mongodb://127.0.0.1:27017/form-file-upload?gssapiServiceNamemongodb Implicit session: session { id : UUID(85f7d362-13d6-41b9-90f9-9de86f711eb0) } MongoDB server version: 3.6.21 {_id : BinData(3,NyKi5Q5N0O9B1bIddlk/g),Timestamp : ISODate(2020-12-21T11:47:01.853Z),FileName : abc.sldimport } 可以看到数据记录已经成功保存到MongoDB。源代码和部署脚本一切的一切尽在https://github.com/daxnet/form-file-upload。Enjoy!
http://www.zqtcl.cn/news/837054/

相关文章:

  • 网站建设项目方案ppt广州建站模板平台
  • 房产部门成立网站免费seo推广软件
  • python做网站好处百度指数分析报告
  • 网站建设挣钱班级介绍网页制作模板
  • 工作室 网站建设app公司
  • 自己做的网站怎么在百度搜索到网页制作论文3000字
  • 如何网站托管中国跨境电商平台有多少
  • 手机p2p网站做平面设计兼职的网站有哪些
  • 贵金属网站建设唐山网站制作工具
  • 网站入门成都网站制作沈阳
  • 接做网站单子的网站做网站要会那些ps
  • 做盗市相关网站wordpress速度优化简书
  • 贵阳手机网站建设公司国内永久免费云服务器
  • 温州做网站定制哪家网络推广公司好
  • 招聘网站怎么做线下活动网站后台管理系统怎么开发
  • 西湖区外贸网站建设商梦建站
  • 网站首页设计注意斗蟋蟀网站建设
  • 石家庄网站建设远策科技网站建设公司人员配备
  • 手机怎么建网站链接专门做鞋子的网站吗
  • 网站建设设计作品怎么写网站建设 网站内容 采集
  • 自己做网站nas如何做网站大图片
  • 网站优化定做嘉兴模板建站代理
  • 南宁做网站比较好的公司有哪些花乡科技园区网站建设
  • 网站注册平台怎么注册申请空间 建立网站吗
  • 汕头住房与城乡建设网站做网站视频 上传到哪儿
  • 东莞网站关键词优化福建个人网站备案
  • 国外获奖flash网站泉州网站制作专业
  • 万网域名注册后如何做网站教学上海app开发和制作公司
  • 恩施网站建设公司个人网站怎么制作成图片
  • 泸州高端网站建设公司上海企业网站