/// <summary> /// Creates a URL that gives access to the provided key. /// </summary> /// <param name="bucketName">The name of the bucket</param> /// <param name="key">The key to share</param> /// <param name="raw">No landing page, directly access the file</param> /// <param name="is_public">Wether objects can be read using only the access_key_id</param> /// <returns></returns> public string CreateShareURL(string bucketName, string key, bool raw, bool is_public) { using (EdgeConfig edgeConfig = new EdgeConfig { auth_service_address = "auth.storjshare.io:7777" }) using (EdgeRegisterAccessOptions edgeRegisterAccessOptions = new EdgeRegisterAccessOptions { is_public = is_public }) using (EdgeShareURLOptions edgeShareURLOptions = new EdgeShareURLOptions { raw = raw }) { using (var registeredAccess = SWIG.storj_uplink.edge_register_access(edgeConfig, _access, edgeRegisterAccessOptions)) { if (registeredAccess.error != null && !string.IsNullOrEmpty(registeredAccess.error.message)) { throw new AccessShareException(registeredAccess.error.message); } using (var shareUrl = SWIG.storj_uplink.edge_join_share_url(registeredAccess.credentials.endpoint, registeredAccess.credentials.access_key_id, bucketName, key, edgeShareURLOptions)) { if (shareUrl.error != null && !string.IsNullOrEmpty(shareUrl.error.message)) { throw new AccessShareException(shareUrl.error.message); } return(shareUrl.string_.Replace("gateway.eu1", "link").Replace("gateway.us1", "link").Replace("gateway.ap1", "link")); } } } }
public static UplinkStringResult edge_join_share_url(string baseURL, string accessKeyID, string bucket, string key, EdgeShareURLOptions options) { UplinkStringResult ret = new UplinkStringResult(storj_uplinkPINVOKE.edge_join_share_url(new storj_uplinkPINVOKE.SWIGStringMarshal(baseURL).swigCPtr, new storj_uplinkPINVOKE.SWIGStringMarshal(accessKeyID).swigCPtr, new storj_uplinkPINVOKE.SWIGStringMarshal(bucket).swigCPtr, new storj_uplinkPINVOKE.SWIGStringMarshal(key).swigCPtr, EdgeShareURLOptions.getCPtr(options)), true); return(ret); }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(EdgeShareURLOptions obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }