uptoken 是由PutPolicy
经过编码加密得到的,语义如下
字段 | 类型 | 语义 |
---|---|---|
scope | string | 指定为bucket:key 这样的形式,bucket 必须 |
deadline | int | token失效的unix时间戳(单位:秒),必须 |
Why Should I Care (For Developers)
"Docker interests me because it allows simple environment isolation and repeatability. I can create a run-time environment once, package it up, then run it again on any other machine. Furthermore, everything that runs in that environment is isolated from the underlying host (much like a virtual machine). And best of all, everything is fast and simple."
require 'hmac-sha1' | |
require 'uri' | |
require 'base64' | |
def urlsafe_base64_encode(content) | |
Base64.encode64(content).strip.gsub('+', '-').gsub('/','_').gsub(/\r?\n/, '') | |
end | |
def generate_access_token(access_key, secret_key, url, body) | |
uri = URI.parse(url) |
<?php | |
require_once("../../qiniu/http.php"); | |
require_once("../../qiniu/auth_digest.php"); | |
require_once("../../qiniu/utils.php"); | |
$accessKey = "aW6EvpZBvWr5Qq3HiFCLiCmvkJORHN8oE-vKR8-z"; | |
$secretKey = "8T270kMZuVZHRjLt6ACKdXj3VAAwPbmeOykQdmOA"; | |
$bucket = "kouqiangzhongzhi"; |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8" /> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> | |
<title>Sewise Player</title> | |
<style type="text/css"> | |
body{ | |
margin: 0px; |
The default Go implementation of
sync.RWMutex does not scale well
to multiple cores, as all readers contend on the same memory location
when they all try to atomically increment it. This gist explores an
n
-way RWMutex, also known as a "big reader" lock, which gives each
CPU core its own RWMutex. Readers take only a read lock local to their
core, whereas writers must take all locks in order.
#include <stdio.h> | |
int binary_search(int *a, int length, int target) | |
{ | |
int left = 0; | |
int right = length - 1; | |
int middle = 0; | |
while (left <= right) | |
{ | |
middle = (left + right) >> 1; |
A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#define ERROR_DATA -999999 | |
typedef struct { | |
int *pData; | |
int length; | |
int top; |