关于使用uniapp 使用uni.uploadFile 使用POST 上传到亚马逊 s3 上
第一点 是需要配置Policy的策略
然后把obj转成一个json的字符串 用base64.encode转成base64
我这个eres.credentials.expiration是取后端的 后端返回的是2022-12-15T08:21:47+00:00
acl不加是因为他报了一个Accessdenied 的问题
success_action_redirect 不加是因为他报了一个304 The bucket you are attempting to access must be addressed using the 。。。。
第二点 signature
注意 这边顺序有问题 按他这样顺序传入 亚马逊服务器那边会一直报签名不符合
这边是CryptoJS 用require 引入一下 var CryptoJS =require(‘…/…/…/util/CryptoJS.js’); 当然也可以网上找 用npm包也可以
var CryptoJS=CryptoJS||function(h,i){
var e={
},f=e.lib={
},l=f.Base=function(){
function a(){
}return{
extend:function(j){
a.prototype=this;var d=new a;j&&d.mixIn(j);d.$super=this;return d},create:function(){
var a=this.extend();a.init.apply(a,arguments);return a},init:function(){
},mixIn:function(a){
for(var d in a)a.hasOwnProperty(d)&&(this[d]=a[d]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){
return this.$super.extend(this)}}}(),k=f.WordArray=l.extend({
init:function(a,j){
a=
this.words=a||[];this.sigBytes=j!=i?j:4*a.length},toString:function(a){
return(a||m).stringify(this)},concat:function(a){
var j=this.words,d=a.words,c=this.sigBytes,a=a.sigBytes;this.clamp();if(c%4)for(var b=0;b<a;b++)j[c+b>>>2]|=(d[b>>>2]>>>24-8*(b%4)&255)<<24-8*((c+b)%4);else if(65535<d.length)for(b=0;b<a;b+=4)j[c+b>>>2]=d[b>>>2];else j.push.apply(j,d);this.sigBytes+=a;return this},clamp:function(){
var a=this.words,b=this.sigBytes;a[b>>>2]&=4294967295<<32-8*(b%4);a.length=h.ceil(b/4)},clone:function(){
var a=
l.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){
for(var b=[],d=0;d<a;d+=4)b.push(4294967296*h.random()|0);return k.create(b,a)}}),o=e.enc={
},m=o.Hex={
stringify:function(a){
for(var b=a.words,a=a.sigBytes,d=[],c=0;c<a;c++){
var e=b[c>>>2]>>>24-8*(c%4)&255;d.push((e>>>4).toString(16));d.push((e&15).toString(16))}return d.join("")},parse:function(a){
for(var b=a.length,d=[],c=0;c<b;c+=2)d[c>>>3]|=parseInt(a.substr(c,2),16)<<24-4*(c%8);return k.create(d,b/2)}},q=o.Latin1={
stringify:function(a){
for(var b=
a.words,a=a.sigBytes,d=[],c=0;c<a;c++)d.