erlang aliyun upload Oss
程序员文章站
2022-07-14 16:20:30
...
[quote]注意内外网上传 我是用外网的 根据自己的需求 都是一年前写的东西 [/quote]
祝你好运
Begin
-module (uploadrecall).
% (外网):oss.aliyuncs.com
% (内网):oss-internal.aliyuncs.com
-define(ACCESS_ID, "meLQf8cj5D*****").
-define(SECRET_ACCESS_KEY, "KHSYv1ttqywsMrnnlq*******").
% uploadrecall:recall("d:/4.wav","old/8001/2013/05/31/4.wav").
-export ([recall/2]).
% FilePath,FileName
recall(FilePath,FileName) ->
CONTENT_LENGTH = filelib:file_size(FilePath),
OBJECT=FileName,
% HOST="http://oss.aliyuncs.com/",
DATE = lists:flatten(get_timestamp()),
% CONTENT_TYPE="audio/x-wav",application/octet-stream
CONTENT_TYPE="application/octet-stream",
% CONTENT= erlang:md5("d:/msg.wav"),
CanonicalizedResource="/jdy-file/"++FileName,
Signature = base64:encode_to_string(crypto:sha_mac("KHSYv1ttqywsMrnnlq*******",("PUT\n\n"++CONTENT_TYPE++"\n"++DATE++"GMT\n"++CanonicalizedResource))),
Authorization ="Authorization: OSS "++?ACCESS_ID++":"++Signature,
{ok,Sock} = gen_tcp:connect("oss.aliyuncs.com", 80, [{active,false}]),
{ok, File} = file:read_file(FilePath),
gen_tcp:send(Sock, "PUT /"++OBJECT++" HTTP/1.1\r\nHost: oss.aliyuncs.com\r\nAccept-Encoding: identity\r\nDate: "++DATE++"GMT\r\nHost: jdy-file.oss.aliyuncs.com\r\nContent-Type: "++CONTENT_TYPE++"\r\nContent-Length: "++integer_to_list(CONTENT_LENGTH)++"\r\nExpect: 100-Continue\r\n"++Authorization++"\r\n\r\n"),
gen_tcp:send(Sock, File),
file:delete(FilePath).
% gen_tcp:recv(Sock,50000),
% gen_tcp:close(Sock).
%Date时间方法
get_timestamp() ->
UTime = erlang:universaltime(),
aly_fmt(UTime).
aly_fmt(DateTime) ->
{Date,{Hour,Min,Sec}} = DateTime,
{Year,Month,Day} = Date,
MonStr = month_to_str(Month),
DWStr = date_to_dw_str(Date),
io_lib:format("~s ~2.10.0B ~s ~4.10.0B ~2.10.0B:~2.10.0B:~2.10.0B ",
[DWStr++"," ,Day, MonStr, Year, Hour, Min, Sec]).
month_to_str(Month) ->
element(Month, {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}).
date_to_dw_str(Date) ->
DW = calendar:day_of_the_week(Date),
element(DW, {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"}).
end
祝你好运
上一篇: lockback,aliyun
下一篇: MySQL创建数据库并制定给某用户
推荐阅读
-
aliyun oss
-
erlang aliyun upload Oss
-
Aliyun-OSS 使用 - 图片持久化
-
react+Antd+Upload上传图片至OSS,单个文件,多个文件上传
-
为阿里云存储开发的PHP PEAR 包:Services_Aliyun_OSS
-
利用 Aliyun OSS Nginx proxy module 实现OSS 图片处理回写功能
-
为阿里云存储开发的PHP PEAR 包:Services_Aliyun_OSS
-
为阿里云存储开发的PHP PEAR 包:Services_Aliyun_OSS_PHP教程
-
利用 Aliyun OSS Nginx proxy module 实现OSS 图片处理回写功能
-
为阿里云存储开发的PHP PEAR 包:Services_Aliyun_OSS_PHP教程