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

网站产品展示单页模板做网站赚钱难

网站产品展示单页模板,做网站赚钱难,网站建设一个月多少钱,wordpress换头像不显示不出来简介 通常情况下#xff0c;应用程序上传文件到AWS S3#xff0c;会使用aws-sdk#xff0c;但是有些情况下#xff0c;客户端应用会有安装限制#xff0c;比如不能安装aws-sdk#xff0c;此时我们就需要通过其他方式实现文件上传与下载。 这里我们提供一个服务端#…简介 通常情况下应用程序上传文件到AWS S3会使用aws-sdk但是有些情况下客户端应用会有安装限制比如不能安装aws-sdk此时我们就需要通过其他方式实现文件上传与下载。 这里我们提供一个服务端在服务端安装aws-sdk。对于文件上传服务端通过aws-sdk生成一个upload policy然后将这个upload policy返回给客户端客户端通过这个upload policy上传文件。对于文件下载服务端通过aws-sdk生成一个presigned url然后将这个presigned url返回给客户端客户端通过这个presigned url下载文件。 文件上传 服务端安装aws-sdk npm install aws-sdk/client-s3 npm install aws-sdk/s3-request-presigner npm install aws-sdk/s3-presigned-post服务端生成upload policy 在服务端的 controller 里添加一个路由产生并返回 upload policy import { S3Client } from aws-sdk/client-s3; import { createPresignedPost } from aws-sdk/s3-presigned-post; import { Conditions } from aws-sdk/s3-presigned-post/dist-types/types;...app.get(/s3/getUploadPolicy, async (req: Request, res: Response) {const bucket req.query.bucket?.toString();const key req.query.key?.toString();const id req.query.id?.toString();if (bucket key) {const fields {x-amz-meta-uuid: id};const conditions: Conditions[] [[starts-with, $key, key],[content-length-range, 16, 10 * 1024 * 1024],[starts-with, $Content-Type, ]];const params {Bucket: bucket,Key: key,Conditions: conditions,Fields: fields,Expires: 10 * 60 * 60,};const client new S3Client();const policy await createPresignedPost(client, params);res.json({ policy: policy });} else {res.json({ error: error });} });客户端上传文件 客户端上传需要使用form-data库做表单提交因此需要先安装form-data库 npm install form-data客户端上传代码如下 import * as FormData from form-data; import { createReadStream } from fs;async function testForUpload(bucket: string, key: string, id: string, file: string) {// http://localhost:3000/s3/getUploadPolicy?bucketmybucketkeyabc.tar.gzuuid12345const url http://localhost:3000/s3/getUploadPolicy?bucket${bucket}key${key}uuid${id};const response await fetch(url);const policy await response.json();console.log(policy);const form new FormData();form.append(key, policy.fields.key);form.append(Content-Type, application/gzip);form.append(X-Amz-Credential, policy.fields[X-Amz-Credential]);form.append(X-Amz-Algorithm, policy.fields[X-Amz-Algorithm]);form.append(X-Amz-Date, policy.fields[X-Amz-Date]);form.append(Policy, policy.fields.Policy);form.append(X-Amz-Signature, policy.fields[X-Amz-Signature]);form.append(x-amz-meta-uuid, policy.fields[x-amz-meta-uuid]);form.append(file, createReadStream(file));await form.submit(policy.url); } // testForUpload(mybucket, abc.tar.gz, 12345, /Volumes/mydisk/test/abc.tar.gz);客户端代码首先调用服务端接口获取upload policy请求的时候传递bucket、key和id服务端会根据这些参数生成upload policy然后客户端使用form-data库生成一个form将参数、policy和文件添加到form中然后将form提交到服务端返回的url 文件下载 服务端安装aws-sdk npm install aws-sdk/client-s3 npm install aws-sdk/s3-request-presigner npm install aws-sdk/s3-presigned-post服务端生成签名的文件下载链接 在服务端的 controller 里添加一个路由产生并返回签名的文件访问url import {S3Client,GetObjectCommand, } from aws-sdk/client-s3; import {getSignedUrl} from aws-sdk/s3-request-presigner;...app.get(/s3/getDownloadUrl, async (req: Request, res: Response) {const bucket req.query.bucket?.toString();const key req.query.key?.toString();if (bucket key) {const client new S3Client();const url await getSignedUrl(client,new GetObjectCommand({Bucket: bucket,Key: key,}),{expiresIn: 10 * 60 * 60,});res.json({ url: url });} else {res.json({ error: error });} });然后客户端请求此链接并添加bucket和key参数比如http://localhost:3000/s3/getDownloadUrl?bucketmybucketkeyabc.tar.gz即可获取签名的文件下载链接。
http://www.tj-hxxt.cn/news/130530.html

相关文章:

  • 好的网站怎么设计crm管理系统销售
  • 网站建设用什么系统好优秀广告设计案例作品欣赏
  • 做分销网站系统下载网站建设方法:
  • 查手表价格的网站现在的网站怎样做推广
  • 深圳网站建设好做家装的网站有什么区别
  • 超好看WordPress保定网站建设与seo
  • 毕节网站建设做公司网站可以抄别人的吗
  • 永嘉网站制作系统建设一个网站成本多少
  • html5公司网站欣赏南宁网络推广
  • 网站建设建设公司资质要求wordpress 支付
  • 彩票网站建设策划书网站开发设计费 怎么入账
  • 网站建站代理威海互联网推广
  • dede网站百度统计怎么做wordpress如何改成中文
  • WordPress 文章 iframe长沙网络seo公司助企业突破
  • 顺通建设集团有限公司 网站wordpress评论头像问题
  • 域名备案 网站名称网页视频下载到电脑
  • 怎么做网站vip并且收费WordPress购物车纯代码
  • 10有免费建网站新公司网站建设方案
  • wordpress 知名站点主图模板
  • 惠州建网站服务苏州app定制开发
  • 企业做网站排名免费微网站哪个好用
  • wordpress建站流量外综服务平台哪里做网站
  • 网站推广策略和效果评价wordpress name增加链接
  • 南京网站建设学习沈阳网站优化
  • 网站是怎么做出来的阜新百姓网免费发布信息
  • 人力招聘网站建设目的腾讯云服务器备案
  • 做网站业务好干吗网站后台无法设置
  • wordpress 建企业网站朝阳区手机网站制作服务
  • 绍兴市建设银行网站网站建设公司需要具备什么
  • p网站建设seo优化包括