console icon indicating copy to clipboard operation
console copied to clipboard

Error while downloading object from console dashboard

Open asoleimanibo opened this issue 3 years ago • 2 comments

I have deployed Minio on the Kubernetes cluster with Helm-Charts, when I try to download an object from the console, I get 404 Not Found error:

Request URL: http://x.x.x.x:port/api/v1/buckets/test/objects/download?prefix=dGV4dC50eHQ=
Request Method: GET
Status Code: 404 Not Found
Remote Address: x.x.x.x:port
Referrer Policy: strict-origin-when-cross-origin

minio operator version: v4.4.8 minio console version: v0.14.7 minio image tag: RELEASE.2022-01-08T03-11-54Z

asoleimanibo avatar Feb 21 '22 11:02 asoleimanibo

We're also running into this issue. It looks like the console is using the wrong URL to download from the specific tenant. When you upload a file, which does work, it uses the following URL:

http://x.x.x.x:port/api/hop/minio-operator/xxx/api/v1/buckets/xxx/objects/upload?prefix=xxx

So, it looks like the download button is missing the /api/hop/mino-operator/tenant_name/ part. When you manually add that part to the URL then the request succeeds. You can also work around it by using the tenant specific console instead of the operator console.

OvervCW avatar Jul 04 '22 13:07 OvervCW

HI @soleimaniamir & @OvervCW!

We applied some changes in https://github.com/minio/console/pull/2286 that may solve the issue you are seeing. Can you please confirm with the latest version of MinIO / Console if the issue is still present?

Thank you.

bexsoft avatar Sep 20 '22 00:09 bexsoft

@bexsoft Still not working unfortunately. I tested every docker up to the latest v.0.20.5

gecube avatar Oct 03 '22 08:10 gecube

I am using minio console as part of minio operator inside of k8s help. What did help me? I created separate ingress for minio console with the correct rewrite rule:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-http01-nginx-issuer
    nginx.ingress.kubernetes.io/rewrite-target: https://console.minio.dev.*****.****/api/hop/minio/minio/api/v1/buckets/$1
  name: minio-operator-console-fix
  namespace: minio-operator
spec:
  ingressClassName: nginx-classic
  rules:
  - host: console.minio.dev.****.****
    http:
      paths:
      - backend:
          service:
            name: console
            port:
              name: http
        path: /api/v1/buckets/(.*)
        pathType: Prefix
  tls:
  - hosts:
    - console.minio.dev.****.****
    secretName: minio-tls

gecube avatar Oct 04 '22 07:10 gecube

This sounds like you need to tell nginx to support larger bodies via the following annotations

nginx.ingress.kubernetes.io/proxy-body-size: 5120g

dvaldivia avatar Dec 12 '22 18:12 dvaldivia

@dvaldivia Why would large bodies cause 404 errors?

OvervCW avatar Dec 13 '22 08:12 OvervCW