Added fix to retrieve correct s3 urls (#2465)

* Added fix to retrieve correct s3 urls

* Fixes to S3 url

* Squashing commits

* Fixing if conditions for storagetype in geturl
This commit is contained in:
Ankit Chawla
2022-07-12 11:56:25 +05:30
committed by GitHub
parent db13455a7b
commit 7838debadf
3 changed files with 16 additions and 26 deletions
+7 -8
View File
@@ -61,15 +61,12 @@ func (opts *GetURLSubCommand) do(input cli.Input) error {
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("Error getting URL. Exited with Status: %v", resp.Status)
return fmt.Errorf("Error getting URL. Exited with Status: %s", resp.Status)
}
archiveURL, err := url.Parse(resp.Header.Get("X-FISSION-ARCHIVEURL"))
if err != nil {
return err
}
storageType := resp.Header.Get("X-FISSION-STORAGETYPE")
if archiveURL.Scheme == "file" {
if storageType == "local" {
storageSvc, err := opts.Client().V1().Misc().GetSvcURL("application=fission-storage")
if err != nil {
return err
@@ -77,8 +74,10 @@ func (opts *GetURLSubCommand) do(input cli.Input) error {
storagesvcURL := "http://" + storageSvc
client := storagesvcClient.MakeClient(storagesvcURL)
fmt.Printf("URL: %s", client.GetUrl(archiveID))
} else {
fmt.Printf("URL: %s", archiveURL.String())
} else if storageType == "s3" {
storageBucket := resp.Header.Get("X-FISSION-BUCKET")
s3url := fmt.Sprintf("https://%s.s3.amazonaws.com/%s", storageBucket, archiveID)
fmt.Printf("URL: %s", s3url)
}
return nil
+9 -5
View File
@@ -231,19 +231,23 @@ func (ss *StorageService) downloadHandler(w http.ResponseWriter, r *http.Request
func (ss *StorageService) infoHandler(w http.ResponseWriter, r *http.Request) {
fileId, err := ss.getIdFromRequest(r)
fileID, err := ss.getIdFromRequest(r)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
itemURL, err := ss.storageClient.getURL(fileId)
_, err = ss.storageClient.container.Item(fileID)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
http.Error(w, err.Error(), http.StatusNotFound)
return
}
w.Header().Add("X-FISSION-ARCHIVEURL", itemURL.String())
storageType := ss.storageClient.config.storage.getStorageType()
if storageType == StorageTypeS3 {
w.Header().Add("X-FISSION-BUCKET", ss.storageClient.config.storage.getContainerName())
}
w.Header().Add("X-FISSION-STORAGETYPE", string(storageType))
}
func (ss *StorageService) healthHandler(w http.ResponseWriter, r *http.Request) {
-13
View File
@@ -20,7 +20,6 @@ import (
"fmt"
"io"
"mime/multipart"
"net/url"
"os"
"strings"
"time"
@@ -183,18 +182,6 @@ func (client *StowClient) removeFileByID(itemID string) error {
return client.container.RemoveItem(itemID)
}
func (client *StowClient) getURL(itemID string) (*url.URL, error) {
item, err := client.container.Item(itemID)
if err != nil {
if err == stow.ErrNotFound {
return nil, ErrNotFound
} else {
return nil, ErrRetrievingItem
}
}
return item.URL(), nil
}
func (client *StowClient) getFileSize(itemID string) (int64, error) {
item, err := client.container.Item(itemID)
if err != nil {