Openresty統合アリクラウドoss
現在、アリ雲の公式はlua版のsdkを提供していないで、ネット上でいくつか探して、感じはあまり理想的ではありませんて、そこで自分で1つの車輪を作って、現在まだ1つの単車の車輪で、一部の機能を実現しただけで、でも使うことができます
くだらないことはあまりコードを言わない
上の例では、ファイルを直接アップロードし、内容、ファイルタイプ、ファイル名を指定します.
実際のシーンでは、クライアントがファイルをアップロードし、nginxでファイルの内容、ファイルタイプを取得し、自動的にファイル名を生成し、上のput_を呼び出す可能性があります.objectメソッドによるアップロード
ファイルアップロードモジュールはlua-resty-uploadで処理できます
luaコードリファレンス:
フロントエンドコードリファレンス
実装済みメソッド put_objectアップロードファイル delete_object削除ファイル put_bucket作成bucket put_bucket_acl bucket権限の変更 delete_bucket削除bucket コードはgithubをアップロードしました.接続:https://github.com/362228416/lua-resty-oss
Openresty luaの詳細はこちらをクリックしてください
くだらないことはあまりコードを言わない
local oss = require "resty.oss"
local oss_config = {
accessKey = "your accessKey";
secretKey = "your secretKey";
bucket = "your bucket",
endpoint = "your oss endpoint" -- :oss-cn-qingdao.aliyuncs.com
}
local client = oss.new(oss_config)
local url = client:put_object("123", "text/html", "123.json")
ngx.say(url)
client:delete_object('123.json')
client:put_bucket('test-bucket123')
client:put_bucket_acl('test-bucket123', 'private')
client:put_bucket_acl('test-bucket123', 'public-read')
client:delete_bucket('test-bucket123')
上の例では、ファイルを直接アップロードし、内容、ファイルタイプ、ファイル名を指定します.
実際のシーンでは、クライアントがファイルをアップロードし、nginxでファイルの内容、ファイルタイプを取得し、自動的にファイル名を生成し、上のput_を呼び出す可能性があります.objectメソッドによるアップロード
ファイルアップロードモジュールはlua-resty-uploadで処理できます
luaコードリファレンス:
local upload = require "resty.upload"
local oss = require "resty.oss"
--
function readFile()
local chunk_size = 4096
local form, err = upload:new(chunk_size)
form:set_timeout(20000)
local file = {}
if not err then
while true do
local typ, res, err2 = form:read()
if not typ then
err = err2
print("failed to read: ", err2)
break
end
if typ == 'header' and res[1] == 'Content-Disposition' then
local filename = string.match(res[2], 'filename="(.*)"')
file.name = filename
end
if typ == 'header' and res[1] == 'Content-Type' then
file['type'] = res[2]
end
if typ == 'body' and file then
file[typ] = (file[typ] or '') .. res
end
if typ == "eof" then
break
end
end
end
return file, err
end
local file, err = readFile()
local oss_config = {
accessKey = "your accessKey";
secretKey = "your secretKey";
bucket = "your bucket",
endpoint = "your oss endpoint" -- :oss-cn-qingdao.aliyuncs.com
}
local client = oss.new(oss_config)
local url = client:put_object(file.body, file.type, file.name)
ngx.say(url)
フロントエンドコードリファレンス
Upload
var url = '/hello';
$('#fileupload').fileupload({
url: url,
dataType: 'text',
done: function (e, data) {
console.log('succcess', data);
},
progressall: function (e, data) {
console.log(data);
}
})
実装済みメソッド
Openresty luaの詳細はこちらをクリックしてください