Exemplo n.º 1
0
        public async Task <IActionResult> GetUploadUrl(string siteName, string fileName)
        {
            bool isAollowAnonymous = !string.IsNullOrEmpty(_setting.Get("AllowAnonymouslyUpload")) && Convert.ToBoolean(_setting.Get("AllowAnonymouslyUpload"));

            if (!isAollowAnonymous)
            {
                if (Request.Headers.ContainsKey("Authorization"))
                {
                    if (!CurrentUser.IsAdmin)
                    {
                        return(Unauthorized(new ErrorResponse()
                        {
                            message = "未经授权的访问"
                        }));
                    }
                }
                else
                {
                    return(Unauthorized(new ErrorResponse()
                    {
                        message = "未经授权的访问"
                    }));
                }
            }
            string path = Path.Combine($"upload/{Guid.NewGuid()}", fileName);

            try
            {
                var result = await _driveService.GetUploadUrl(path, siteName);

                return(Json(new
                {
                    requestUrl = result,
                    fileUrl = $"{OneDriveConfiguration.BaseUri}/api/files/{siteName}/{path}"
                }, new JsonSerializerSettings()
                {
                    ContractResolver = new CamelCasePropertyNamesContractResolver()
                }));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GetUploadUrl(string siteName, string fileName)
        {
            bool isAollowAnonymous = string.IsNullOrEmpty(setting.Get("AllowAnonymouslyUpload")) ? false : Convert.ToBoolean(setting.Get("AllowAnonymouslyUpload"));
            bool isAdmin           = false;

            if (!isAollowAnonymous)
            {
                if (Request.Headers.ContainsKey("Authorization"))
                {
                    isAdmin = AuthenticationHelper.VerifyToken(Request.Headers["Authorization"]);
                    if (!isAdmin)
                    {
                        return(Unauthorized(new ErrorResponse()
                        {
                            Message = "未经授权的访问"
                        }));
                    }
                }
                else
                {
                    return(Unauthorized(new ErrorResponse()
                    {
                        Message = "未经授权的访问"
                    }));
                }
            }
            string path = Path.Combine($"upload/{Guid.NewGuid().ToString()}", fileName);

            try
            {
                var result = await driveService.GetUploadUrl(path, siteName);

                return(Ok(new {
                    requestUrl = result,
                    fileUrl = $"{Configuration.BaseUri}/api/files/{siteName}/{path}"
                }));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }