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

邢台专业做网站公司百度app下载安装 官方

邢台专业做网站公司,百度app下载安装 官方,又拍云WordPress 插件,爱站网关键词查询系统在某些场合,需要临时将一个文件存储到一个可被公网访问的地方,某个服务需要访问一下这个文件。这个文件基本上就是一次寿命,也就是你上传一下,然后被访问一下,这个文件的寿命就结束了。 对于这种需求,自建…

在某些场合,需要临时将一个文件存储到一个可被公网访问的地方,某个服务需要访问一下这个文件。这个文件基本上就是一次寿命,也就是你上传一下,然后被访问一下,这个文件的寿命就结束了。

对于这种需求,自建服务程序,太麻烦。刚好,阿里云提供了这样的服务。其实就三个步骤:
1、创建一个临时存放的位置
2、上传文件
3、获取这个临时存放的位置对应的公网URL
然后将这个URL提供给某个服务就可以了 ,文件大约保存1个小时。那么这个文件的有效期也就是一个小时,基本上够用了。

接下来,按照如下编码,即可使用此功能。

获取临时文件上传地址


private static Client CreateHbrClient()
{return new Client(new Config{AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),Endpoint = "hbr.cn-hangzhou.aliyuncs.com"});
}private static CreateTempFileUploadUrlResponse? UploadFileToTempStorage(string filePath){Client client = CreateHbrClient();try{return client.CreateTempFileUploadUrlWithOptions(new CreateTempFileUploadUrlRequest{FileName = Path.GetFileName(filePath)},new RuntimeOptions());}catch (Exception error){Console.WriteLine(error.Message);Console.WriteLine(error.Data["Recommend"]);}return null;}

上载临时文件

正在实现C#代码(这里试了很多次(HttpClient、WebClient),都没搞定,最后用最原始的方式组装数据才能用)。但是Python代码不会遇到问题。

 public static void PostFile1(string filePath, CreateTempFileUploadUrlResponse data){//提交文件Console.WriteLine("curl -X POST ^");Console.WriteLine("-F \"OSSAccessKeyId=" + data.Body.OssAccessKeyId + "\" ^");Console.WriteLine("-F \"Signature=" + data.Body.Signature + "\" ^");Console.WriteLine("-F \"Policy=" + data.Body.Policy + "\" ^");Console.WriteLine("-F \"key=" + data.Body.TempFileKey + "\" ^");Console.WriteLine("-F \"file=@" + filePath + "\" ^");Console.WriteLine($"https://{data.Body.BucketName}.{data.Body.Endpoint}/");Console.WriteLine("");Console.ReadLine();}public static void PostFileAsync(string filePath, CreateTempFileUploadUrlResponse data){//PostFile1(filePath, data);var uploadUrl = $"https://{data.Body.BucketName}.{data.Body.Endpoint}/";string host = $"{data.Body.BucketName}.{data.Body.Endpoint}";string boundary = "---------------------------boundary";string contentType = "multipart/form-data; boundary=" + boundary;// 构造请求头string requestHeader = $"POST / HTTP/1.1\r\n";requestHeader += $"Host: {host}\r\n";requestHeader += $"Content-Type: {contentType}\r\n";requestHeader += "Connection: close\r\n";// 构造请求体StringBuilder requestBody = new StringBuilder();requestBody.AppendLine($"--{boundary}");requestBody.AppendLine("Content-Disposition: form-data; name=\"OSSAccessKeyId\"");requestBody.AppendLine();requestBody.AppendLine(data.Body.OssAccessKeyId);requestBody.AppendLine($"--{boundary}");requestBody.AppendLine("Content-Disposition: form-data; name=\"Signature\"");requestBody.AppendLine();requestBody.AppendLine(data.Body.Signature);requestBody.AppendLine($"--{boundary}");requestBody.AppendLine("Content-Disposition: form-data; name=\"Policy\"");requestBody.AppendLine();requestBody.AppendLine(data.Body.Policy);requestBody.AppendLine($"--{boundary}");requestBody.AppendLine("Content-Disposition: form-data; name=\"key\"");requestBody.AppendLine();requestBody.AppendLine(data.Body.TempFileKey);requestBody.AppendLine($"--{boundary}");requestBody.AppendLine("Content-Disposition: form-data; name=\"file\"; filename=\"" + Path.GetFileName(filePath) + "\"");requestBody.AppendLine("Content-Type: audio/m4a");requestBody.AppendLine();byte[] requestBodyBytes = Encoding.UTF8.GetBytes(requestBody.ToString());// 读取文件内容byte[] fileBytes = File.ReadAllBytes(filePath);// 构造完整的请求数据byte[] requestBytes = new byte[requestBodyBytes.Length + fileBytes.Length + Encoding.UTF8.GetBytes($"\r\n--{boundary}--\r\n").Length];requestBodyBytes.CopyTo(requestBytes, 0);fileBytes.CopyTo(requestBytes, requestBodyBytes.Length);Encoding.UTF8.GetBytes($"\r\n--{boundary}--\r\n").CopyTo(requestBytes, requestBodyBytes.Length + fileBytes.Length);// 发送请求using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)){IPAddress ipAddress = Dns.GetHostEntry(host).AddressList[0];IPEndPoint remoteEP = new IPEndPoint(ipAddress, 443);socket.Connect(remoteEP);// 使用SslStream封装Socket连接using (SslStream sslStream = new SslStream(new NetworkStream(socket), false, (object sender, X509Certificate? certificate, X509Chain? chain, SslPolicyErrors sslPolicyErrors)=>true)){sslStream.AuthenticateAsClient(host);// 发送请求头byte[] headerBytes = Encoding.UTF8.GetBytes(requestHeader + $"Content-Length: {requestBytes.Length}\r\n\r\n");sslStream.Write(headerBytes);// 发送请求体sslStream.Write(requestBytes);// 接收响应byte[] buffer = new byte[1024];int bytesRead;StringBuilder response = new StringBuilder();while ((bytesRead = sslStream.Read(buffer, 0, buffer.Length)) > 0){response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));}Console.WriteLine("Response:");Console.WriteLine(response.ToString());}}}

获取文件路径

    public static string? GetUrl(string filePath, CreateTempFileUploadUrlResponse data){Client client = CreateHbrClient();try{return client.GetTempFileDownloadLinkWithOptions(new GetTempFileDownloadLinkRequest{TempFileKey = data.Body.TempFileKey,},new RuntimeOptions()).Body.Url;}catch (Exception error){Console.WriteLine(error.Message);Console.WriteLine(error.Data["Recommend"]);}return null;}
}

执行代码


const string filePath = "C:\\Users\\Zmrbak\\Documents\\Camtasia\\声线20250513-26.m4a";//获取临时文件上传地址
var urlResponse = UploadFileToTempStorage(filePath);
if (urlResponse == null) return;//上载临时文件
await PostFileAsync(filePath, urlResponse);//获取文件路径
var url = GetUrl(filePath, urlResponse);
Console.WriteLine(url);

文章转载自:

http://sTe06U8R.qsszq.cn
http://uLUHNZUj.qsszq.cn
http://iytGX6bE.qsszq.cn
http://oqUxJ9oi.qsszq.cn
http://ImSSaNcJ.qsszq.cn
http://KhlUBpVO.qsszq.cn
http://pSdugTZp.qsszq.cn
http://9g2dJEAw.qsszq.cn
http://qvswSeHs.qsszq.cn
http://zrKC8iR0.qsszq.cn
http://AypZT4fP.qsszq.cn
http://do5UjXIc.qsszq.cn
http://214KvFca.qsszq.cn
http://e4I4RlNU.qsszq.cn
http://Zfyn2pUw.qsszq.cn
http://e0SjHnls.qsszq.cn
http://6rMlgMac.qsszq.cn
http://tDuZYh9Q.qsszq.cn
http://vq4Dm4j5.qsszq.cn
http://cFbje2yY.qsszq.cn
http://t73Cf6GD.qsszq.cn
http://Qsl8VcAv.qsszq.cn
http://xtnXFhIf.qsszq.cn
http://6xCGBTvR.qsszq.cn
http://1KuTiMbs.qsszq.cn
http://LPyju9Gd.qsszq.cn
http://rNpZhArt.qsszq.cn
http://6YyLhHB1.qsszq.cn
http://AWQOywnK.qsszq.cn
http://g6AjU3Fj.qsszq.cn
http://www.dtcms.com/wzjs/759971.html

相关文章:

  • 网站如何做关键词seo优化ftp备份网站
  • 百度经验网站建设西充县住房和城乡建设局网站
  • 宁德市建设银行网站phpstudy配置wordpress
  • 做网站去青鸟学什么专业苏州城乡建设局的网站首页
  • 安徽网站建设大全2010年最具人气的平面设计师必备网站
  • 外贸建站用什么平台好xampp wordpress 花生壳
  • 在哪个网站做推广比较好怎样申请微信公众平台账号
  • 微信公众号怎么做网站的网站建设焦作
  • 网站建设需求分析范例wordpress列表图片
  • 培训行业网站建设中国最火的网站
  • 成都网站空间创新互联wordpress 修改 注册
  • 设计做网站域名哪里注册
  • 定做网站多少钱wiz wordpress
  • 如何用eclipse做网站dedecms 音乐网站模板
  • 给人做违法网站规避网站建设的运营计划书
  • 郑州大型网站建设价格常州免费做网站
  • 商丘做网站建设凡客官方网店
  • 如何评价企业网站推广效果?制作网站时搜索图标如何做
  • 西安网站群搭建网站建设伍金手指下拉6
  • 做催收的网站网站建设典型经验
  • 新会网站设计个体营业执照怎么年审
  • 做58同城的网站要多少钱百度推广管家登录
  • 网站集约化建设优点美食网站联系我们怎么做
  • 优秀的店面空间设计网站wordpress 解析漏洞利用
  • 南宁网站建公司电话号码九江市区
  • 做网站不错的公司网站做ddns解析
  • 如何做自己的小说网站网站设计平台
  • 邯郸市网络建站万州电商网站建设
  • 如何建设一个博客网站企业做网站哪家便宜
  • 网站改版案例网站搜索引擎优化方案论文